[英]Finding Plus Sign in Regular Expression
var string = 'abcd+1';
var pattern = 'd+1'
var reg = new RegExp(pattern,'');
alert(string.search(reg));
我昨晚發現,如果你嘗試在一個帶有Javascript正則表達式的文本字符串中找到一個加號,它就會失敗。 它不會找到該模式,即使它存在於該字符串中。 這必須是因為一個特殊的角色。 在一段文字中找到加號的最佳方法是什么? 此外,這會失敗的其他角色是什么?
Plus是正則表達式中的特殊字符 ,因此要將字符表示為數據,必須通過在其前面加上\\
來對其進行轉義。
var reg = /d\+1/;
\-\.\/\[\]\\ **always** need escaping
\*\+\?\)\{\}\| need escaping when **not** in a character class- [a-z*+{}()?]
但是如果你不確定,在你想要匹配的非單詞字符之前包含轉義是沒有害處的。
數字或字母是單詞字符,轉義數字指的是前一個匹配,轉義字母可以匹配不可打印的字符,如換行符(\\ n),制表符(\\ t)或單詞邊界(\\ b),或aa字符集,像任何單詞字符(\\ 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
您應該在模式中的+前面使用轉義字符\\。 例如。 \\ +
你可能需要逃避加號:
var pattern = /d\+1/
加號在正則表達式中用於指示一行中的一個或多個字符。
它應該是var pattern = '/d\\\\+1/'
。
該字符串將'\\\\'
'\\'
轉義為'\\'
( '\\\\+'
- > '\\+'
),因此正則表達式對象init為/d\\+1/
簡單的方法:
字母表是:“ [\\+]
”
我們想找到的所有加號:“ [\\+]*
”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.