From:
Test regular website:
Modifier:
g: global full-text search, no addition, search stops at the first match.
i: ignore case ignores case, default is case sensitive.
m: multiple lines multi-line search.
lastIndex: The next position of the last character of the content matched by the current expression
source: The text string of the regular expression
Regular expressions consist of two basic character types:
Literal text characters (for example: abc)
Metacharacters (for example: \b). Metacharacters are non-alphabetic characters with special meanings in regular expressions (.*+?^.|\(){}[])
Metacharacters :
- ##\t: Horizontal tab character
- \v: Vertical tab character
- \n: Line break character
- \r: Carriage return character
##\0: Empty character -
\f: form feed character
##Character class:
[abc]: Build a simple Class (for example: 'a1b2c3d4'.replace(/[abc]/g,'X') =》X1X2X3d4)
##[^abc]: Negation
Range class:
[a-z]: Any character from a to z, including a and z. (For example: 'a1b2c3d4aa'.replace(/[a-z]/g,'X') =》X1X2X3X4XX)
[a-zA-Z]: Class composed of [] It can be written continuously inside.
[a,z]: Split ('12345678'.replace(/[1,3]/g,'A') =》A2A45678)
Predefined class:
.: All characters except carriage returns and line feeds ([^\r\n])
\d: Numeric characters ([0-9])
\D: Non-numeric characters ([^0-9])
\s: whitespace character ([\t\n\x0B\f\r])
\S: non-whitespace character ( [^\t\n\x0B\f\r] )
\w: word characters, including characters, numbers, and underscores ([a-zA-Z_0-9])
\W: Non-word characters ([^a-zA-Z_0-9])
Boundary matching characters :
^: Start with xxx ('@123@abc@a'.replace(/^@./g,'X') =》X23@abc@a)
$: ends with xxx ('@123@abc@a'.replace(/@.$/g,'X') =》@123@abcX)
\b: Word boundary
\B: Non-word boundary
Quantifier :
##?: Appears 0 or 1 times
- +: Appears 1 or more times
- *: Occurs 0 or more times
- {n}: Occurs n times
- {n,m}: Occurs n To m times
- {n,}: At least n times
- Greedy mode: Regular expression will exhaust Match as many times as possible until a match fails. ('12345678'.replace(/\d{3,6}/g,'A') =》A78)
Non-greedy mode: match as few as possible. Just add ? after the quantifier. ('12345678'.replace(/\d{3,6}?/g,'A') =》AA78)
Group:
Use () to achieve the grouping function, so that the quantifier acts on the grouping ('a1b2c3d4'.replace(/(\w\d){3}/g,'X') =》Xd4)
- Or|('a1b2c3d4'.replace(/(a1|b2)/g,'X') =》XXc3d4)
- Backreference ('2017-05-06'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2/$3/$1') =》05/06/2017)
Ignore grouping: If you don’t want to capture certain groups, you just need to add ?: in the grouping
Look-ahead: When the regular expression matches a rule, check forward to see if it conforms to the assertion, and look-ahead in the opposite direction. JS does not support look-ahead.
Positive lookahead: exp(?=assert)('a2*3'.replace(/\w(?=\d)/g,'X') =》X2 *3)
- Negative lookahead: exp(?!assert)
- Positive lookback: exp(?<=assert), JS is not supported.
- Negative lookback: erp((?
- test( str): used to test whether there is a string matching the regular expression pattern in the string parameter (var reg1 = /\w/; reg1.test('a');//true)
exec(str): Performs a search on a string using a regular expression pattern and will update the properties of the global RegExp object to reflect the matching results.
Returns null if there is no matching text, otherwise returns an array of results: index declares the position of the first character of the matching text, and input stores the retrieved string string
The above is the detailed content of javascript-regular expression. For more information, please follow other related articles on the PHP Chinese website!