Javascript: заменить рег опыта - PullRequest
       4

Javascript: заменить рег опыта

0 голосов
/ 07 февраля 2012

Я хочу заменить все символы, которые не являются буквами, на -, но мой код не работает:

 $reg = '/[^a-zA-Z]+/g';  
 $txt = $txt.replace($reg, '-');

Что я делаю не так?

Ответы [ 4 ]

4 голосов
/ 07 февраля 2012

Регулярные выражения в JavaScript не являются строками.

reg = /[^a-z]+/gi;
txt = txt.replace(reg, '-');

Вам не нужно помещать кавычки вокруг них.

3 голосов
/ 07 февраля 2012

Вам необходимо снять кавычки со строкой регулярного выражения, чтобы она воспринималась как литерал регулярного выражения, поэтому вы получите следующее:

$reg = /[^a-zA-Z]+/g;  
$txt = $txt.replace($reg, '-');

Регулярные выражения в JavaScript не нужно заключать в кавычки, если только вы не используетезапись new Regexp();в приведенном выше примере это теперь литерал регулярного выражения , который рассматривается не как строка, а как часть регулярного выражения для использования в .replace().

2 голосов
/ 07 февраля 2012

не используйте кавычки в регулярных выражениях. Без кавычек они являются RegEx объектом. С кавычками они просто строки.

Используйте

$reg = /[^a-zA-Z]+/g;
1 голос
/ 07 февраля 2012

Удалите кавычки вокруг вашего регулярного выражения.

Если вы намерены заменить несколько не-буквенных символов в строке одним дефисом, то ваше регулярное выражение будет работать.Если вы хотите, чтобы несколько не-буквенных символов были заменены несколькими дефисами, вам также следует удалить знак +.

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