Удаление мягких дефисов из строки
Допустим, у меня есть строка, которая усеяна мягкими дефисами (представьте, что дефисы в тексте ниже являются мягкими дефисами):
T-h-i-s- -i-s- -a- -t-e-s-t-.-
Я хочу удалить мягкие дефисы и вернуть только строку:
This is a test.
Я пытаюсь сделать это в JavaScript. Ниже самое дальнее, что я получил до сих пор:
RemoveSoftHyphen: function (text) {
var result = text.match(/[^\uA00AD].*/);
alert (result);
return result;
}
Когда показывалось предупреждение, все, что я получил, было "-", которое я не уверен, является ли это мягким или жестким дефисом... но что более важно, это не сработало.
Я пытаюсь выяснить, что не так с моим регулярным выражением, или есть лучший подход к удалению мягких дефисов, о котором я не знаю, использую ли JavaScript или jQuery.
1 ответ
Решение
Предполагая, что персонаж действительно Unicode 00AD:
var result = text.replace(/\u00AD/g,'');
Если вам нужно убить много дефисов, используйте класс символов:
var result = text.replace(/[\u00AD\u002D\u2011]+/g,'');