簡體   English   中英

尋找加號登錄正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM