Найти мягкие дефисы в HTML-документе - PullRequest
4 голосов
/ 12 ноября 2011

Давайте посмотрим на следующий код:

$('#el').html('ex­am­ple');

Теперь, как мне вернуть текст этого элемента с мягкими дефисами?Оба из них:

$('#el').html();
$('#el').contents().get(0).nodeValue;

дает мне «пример» в качестве возвращаемого значения, а не «пример»

jsFiddle link: http://jsfiddle.net/w7QKH/

Браузер: FF7, не проверенов других браузерах.

Ответы [ 2 ]

5 голосов
/ 12 ноября 2011

На самом деле $ ('# el'). Html () дает вам 'example' с мягкими дефисами. Если вы запустите $ ('# el'). Html (). Length, он вернет 9. Итак, дефисы есть, но они не отображаются. И это не равно 'ex­am­ple', потому что эта строка не экранирована. Если вы хотите сравнить со строкой, вы должны использовать 'ex\u00ADam\u00ADple' - здесь я заменил ­ на значение Юникода. http://jsfiddle.net/w7QKH/1/

1 голос
/ 12 ноября 2011

$('#el').html().replace(/\u00AD/g, '­');

См. http://jsfiddle.net/K9mUy/

...