2012-04-30 1 views
3

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

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

Где в коде это строка вставляется обратно в DOM? – Hamish

+0

@Hamish: это функция, которая будет вызвана чем-то другим. Согласование мягкого дефиса является самой тревожной частью, так как я не в курсе, как избавиться от этих дефисов ниндзя и вернуть мне санированную строку. – BeraCim

+0

Но * «возвращаемая строка больше не содержит никаких мягких дефис» *. Непонятно, о чем вы спрашиваете. Возможно, создайте пример на jsfiddle.com – Hamish

ответ

8

Если предположить, что характер действительно Unicode 00AD:

var result = text.replace(/\u00AD/g,''); 

Если у вас есть many hyphens убить, использовать символьный класс:

var result = text.replace(/[\u00AD\u002D\u2011]+/g,''); 

 Смежные вопросы

  • Нет связанных вопросов^_^