Удаление мягких дефисов из строки

Допустим, у меня есть строка, которая усеяна мягкими дефисами (представьте, что дефисы в тексте ниже являются мягкими дефисами):

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,'');
Другие вопросы по тегам