Проблема в регулярном выражении - PullRequest
1 голос
/ 30 декабря 2010

Я пытаюсь удалить несколько пробелов, используя приведенные ниже коды, а также удаление, но это не работает для персонажа N B S P .....

replace(SPACE, " ").replace(/^[\s\t\n\&nbsp\;]+|[\s\t\n\&nbsp\;]+$/g, '');

Ответы [ 4 ]

2 голосов
/ 30 декабря 2010

Попробуйте:

str.replace(/( )|[ \t\n]/g, '')
1 голос
/ 30 декабря 2010

Для замены начальных и конечных пробелов и   вы можете сделать:

str.replace(/^( |\s)+|( |\s)+$/gi, '')

Причина удаления n b s p и ; из вашей строки из-за неправильного класса символов:

[\s\t\n\&nbsp\;]

, что также соответствует символам n b s p и ;.

Также обратите внимание, что \s включает \t и \n.

В случае, если вы хотите удалить все пробельные символы и все   из строки, вы можете сделать:

str.replace(/( |\s)+/gi, '')
1 голос
/ 30 декабря 2010

Попробуйте /([ \r\n\t]| )/g удалить все пробелы в строке,
Попробуйте /^([ \r\n\t]| )/g удалить все пробелы в начале строки,
Попробуйте /([ \r\n\t]| )$/g удалить все пробелы в конце строки,

1 голос
/ 30 декабря 2010

Может быть менее сложным imho:

(' replace  -s and spaces   in this line  ok? ')
      .replace(/ |\s|\s+/gi, '');
//=>result: 'replace-sandspacesinthislineok?'

При этом RegExp / заменяются все экземпляры пробелов / & nbsp; -s заменяются пустой строкой.

/ |\s|\s+/gi
-------^ or operator, so: match   OR \s OR \s+
---------------^g modifier: match all instances in the string to search
-----------------^i modifier: match case insensitive

Еще более короткая форма будет:

    /( |\s)+/gi
----------------^ + match the preceding element one or more times

Википедия твой друг

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