JavaScript / jQuery удаляет символ 160 из значения text () узла - Regex - PullRequest
4 голосов
/ 15 апреля 2010
$('#customerAddress').text().replace(/\xA0/,"").replace(/\s+/," ");

Переходя к значению в интервале (id = customerAddress), и я хотел бы сократить все секции пробела до одного пробела. / \ S + / whould работать, за исключением того, что это приложение получает символ 160 между адресом улицы и состоянием / zip Как лучше написать это? в настоящее время это не работает.

UPDATE : Я понял, что

$('.customerAddress').text().replace(/\s+/g," ");

очищает 160 и пробелы. Но как бы я написал регулярное выражение, чтобы просто пойти после 160-х?

$('.customerAddress').text().replace(String.fromCharCode(160)," ");

даже не работал.

Примечание: я тестирую в Firefox / Firebug

Ответы [ 3 ]

11 голосов
/ 15 апреля 2010

Что касается замены символа 160, вы забыли сделать глобальное регулярное выражение, поэтому вы заменяете только первое совпадение. Попробуйте это:

$('.customerAddress').text()
    .replace(new RegExp(String.fromCharCode(160),"g")," ");

Или даже проще, используйте пример Hex в своем вопросе с глобальным флагом

$('.customerAddress').text().replace(/\xA0/g," ");
9 голосов
/ 15 апреля 2010

\s уже содержит символ U + 00A0 :

[\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]

Но вы должны добавить модификатор g для глобальной замены:

$('#customerAddress').text().replace(/\s+/g, " ")

В противном случае будет заменен только первый матч.

0 голосов
/ 15 апреля 2010

Извините, если я был очевиден (или не прав), но разве .text () при вызове без параметров просто ВОЗВРАЩАЕТ текст? Я имею в виду, я не знаю, включили ли вы полный код или просто отрывок, но чтобы действительно заменить промежуток, вы должны сделать это следующим образом:

var t = $('#customerAddress').text().replace(/\xA0/,"").replace(/\s+/," ");
$('#customerAddress').text(t);

Кроме того, регулярное выражение для разделения пробелов выглядит нормально, я просто не уверен насчет синтаксиса вашего непечатаемого символа там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...