开发者

Finding Plus Sign in Regular Expression

开发者 https://www.devze.com 2022-12-15 14:19 出处:网络
var string = \'abcd+1\'; var pattern = \'d+1\' var reg = new RegExp(pattern,\'\'); alert(string.search(reg));
var string = 'abcd+1';
var pattern = 'd+1'
var reg = new RegExp(pattern,'');
alert(string.search(reg));

I found out last night that if you try and find a plus sign in a string of text with a Javascript regular expression, it fails. It will not find that pattern, even开发者_如何学Go though it exists in that string. This has to be because of a special character. What's the best way to find a plus sign in a piece of text? Also, what other characters will this fail on?


Plus is a special character in regular expressions, so to express the character as data you must escape it by prefixing it with \.

var reg = /d\+1/;


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

But if you are unsure, it does no harm to include the escape before a non-word character you are trying to match.

A digit or letter is a word character, escaping a digit refers to a previous match, escaping a letter can match an unprintable character, like a newline (\n), tab (\t) or word boundary (\b), or a a set of characters, like any word-character (\w), any non-word character (\W).

Don't escape a letter or digit unless you mean it.


Just a note,

\ should be \\ in RegExp pattern string, RegExp("d\+1") will not work and Regexp(/d\+1/) will get error.

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


You should use the escape character \ in front of the + in your pattern. eg. \+


You probably need to escape the plus sign:

var pattern = /d\+1/

The plus sign is used in regular expressions to indicate 1 or more characters in a row.


It should be var pattern = '/d\\+1/'.

The string will escape '\\' as '\' ('\\+' --> '\+') so the regex object init with /d\+1/


if you want to use + (plus sign) or $ (sigil /dollar sign), then use \ (backslash) as a prefix. Like that: \$ or \+

0

精彩评论

暂无评论...
验证码 换一张
取 消