Подтвердить что ты не робот

Поиск плюса в регулярном выражении

var string = 'abcd+1';
var pattern = 'd+1'
var reg = new RegExp(pattern,'');
alert(string.search(reg));

Вчера я узнал, что если вы попытаетесь найти знак плюса в строке текста с регулярным выражением Javascript, это не сработает. Он не найдет этот шаблон, даже если он существует в этой строке. Это должно быть из-за особого характера. Какой лучший способ найти знак плюса в тексте? Кроме того, какие другие символы будут терпеть неудачу?

4b9b3361

Ответ 1

Плюс специальный символ в регулярных выражениях, поэтому, чтобы выразить символ как данные, вы должны избегать его, предварительно указав его \.

var reg = /d\+1/;

Ответ 2

\-\.\/\[\]\\ **always** need escaping
\*\+\?\)\{\}\| need escaping when **not** in a character class- [a-z*+{}()?]

Но если вы не уверены, это не вредит включению escape-кода перед символом не-слова, который вы пытаетесь сопоставить.

Символьная цифра или буква - это символ слова, при этом побега над цифрой относится к предыдущему совпадению, а экранирование буквы может соответствовать непечатаемому символу, например, новой строке (\n), вкладке (\ t) или границе слова (\ b), или набор символов, как любой символ слова (\ w), любой неглавный символ (\ W).

Не избегайте буквы или цифры, если вы не имеете в виду ее.

Ответ 3

Просто заметьте,

\ должен быть \\ в строке шаблона RegExp, RegExp("d\+1") не будет работать, а Regexp(/d\+1/) получит ошибку.

var string = 'abcd+1';
var pattern = 'd\\+1'
var reg = new RegExp(pattern,'');
alert(string.search(reg));
//3

Ответ 4

Вы должны использовать символ escape\перед символом + в вашем шаблоне. например.\+

Ответ 5

Вероятно, вам нужно избежать знака плюса:

var pattern = /d\+1/

Знак плюса используется в регулярных выражениях для указания 1 или более символов в строке.

Ответ 6

Он должен быть var pattern = '/d\\+1/'.

Строка выйдет из '\\' как '\' ('\\+''\+'), так что объект init регулярного выражения с /d\+1/

Ответ 7

Простой способ сделать это:

Алфавит: " [\+] "

Все плюсы, которые мы хотим найти: " [\+]* "