Ответ 1
Плюс специальный символ в регулярных выражениях, поэтому, чтобы выразить символ как данные, вы должны избегать его, предварительно указав его \
.
var reg = /d\+1/;
var string = 'abcd+1';
var pattern = 'd+1'
var reg = new RegExp(pattern,'');
alert(string.search(reg));
Вчера я узнал, что если вы попытаетесь найти знак плюса в строке текста с регулярным выражением Javascript, это не сработает. Он не найдет этот шаблон, даже если он существует в этой строке. Это должно быть из-за особого характера. Какой лучший способ найти знак плюса в тексте? Кроме того, какие другие символы будут терпеть неудачу?
Плюс специальный символ в регулярных выражениях, поэтому, чтобы выразить символ как данные, вы должны избегать его, предварительно указав его \
.
var reg = /d\+1/;
\-\.\/\[\]\\ **always** need escaping
\*\+\?\)\{\}\| need escaping when **not** in a character class- [a-z*+{}()?]
Но если вы не уверены, это не вредит включению escape-кода перед символом не-слова, который вы пытаетесь сопоставить.
Символьная цифра или буква - это символ слова, при этом побега над цифрой относится к предыдущему совпадению, а экранирование буквы может соответствовать непечатаемому символу, например, новой строке (\n), вкладке (\ t) или границе слова (\ b), или набор символов, как любой символ слова (\ w), любой неглавный символ (\ W).
Не избегайте буквы или цифры, если вы не имеете в виду ее.
Просто заметьте,
\
должен быть \\
в строке шаблона 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
Вы должны использовать символ escape\перед символом + в вашем шаблоне. например.\+
Вероятно, вам нужно избежать знака плюса:
var pattern = /d\+1/
Знак плюса используется в регулярных выражениях для указания 1 или более символов в строке.
Он должен быть var pattern = '/d\\+1/'
.
Строка выйдет из '\\'
как '\'
('\\+'
→ '\+'
), так что объект init регулярного выражения с /d\+1/
Простой способ сделать это:
Алфавит: " [\+]
"
Все плюсы, которые мы хотим найти: " [\+]*
"