Finding Plus Sign in Regular Expression

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 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?

Answers


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/


Need Your Help

python tracing a segmentation fault

python c debugging

I'm developing C extensions from python ad I obtain some segfaults (inevitable during the development...).

EF LINQ include multiple and nested entities

.net asp.net-mvc-3 linq entity-framework entity-framework-5

Ok, I have tri-leveled entities with the following hierarchy: Course -> Module -> Chapter