Regular expressions are patterns used to match character combinations in strings. Regular expressions are also objects in JS. It is usually used to retrieve and replace the text that conforms to a certain pattern, or to filter out some sensitive words in the page content (replacement), or to get the specific part we want from the string (extraction).
characteristic
- Flexibility, logic and functionality are very strong;
- It can quickly achieve the copy control of string in a minimalist way;
- In actual development, you need to understand regular expressions. You can copy formulas, but you also need to know how to modify them.
establish
//1. Create through RegExp var rg = new RegExp(/123/); //2. Create with literal var rg1 = /123/; var str = 123; var str1 = 'zbbc'; console.log(rg.test(str)); //true console.log(rg.test(str1)); //false
test() is used to detect that the string is dog compliant, return Boolean value, and the parameter is the tested string
Regular characters can be composed of simple characters, as well as simple and special characters.
Special characters are called metacharacters, which are special symbols with special meaning in regular, such as $, +, ^ and so on.
Boundary character, also known as position character, is used to indicate the position of the character^ Who to start with$ End with who.
var reg1 = /abc/; console.log(reg1.test('abc')); //true console.log(reg1.test('absc')); //false console.log(reg1.test('aabcdd')); //true console.log("---------------"); var reg2 = /^abc/; console.log(reg2.test('abc')); //true console.log(reg2.test('absc')); //false console.log(reg2.test('abcdd'));//true console.log("---------------"); var reg3 = /^abc$/; console.log(reg3.test('abc')); //true console.log(reg3.test('abcabc')); //false console.log(reg3.test('abcdd')); //false
The character class [] represents a series of characters in parentheses. As long as one character is satisfied, it is true. [^ a-z] indicates that characters other than a-z are taken.
var rg = /[abc]/; console.log(rg.test('andy')); //true console.log(rg.test('blue'));//true console.log(rg.test('red'));//false console.log("---------------"); var rg1 = /^[abc]$/; console.log(rg1.test("assign"));//false console.log(rg1.test("a"));//true console.log(rg1.test("c"));//true console.log("---------------"); var rg2 = /^[a-z]$/; console.log(rg2.test("assign"));//false console.log(rg2.test("a"));//true console.log(rg2.test("g"));//true console.log(rg2.test("G"));//false console.log(rg2.test("1"));//false console.log("---------------"); var rg4 = /^[a-zA-Z0-9]/; console.log(rg4.test("assign"));//true console.log(rg4.test("a"));//true console.log(rg4.test("g"));//true console.log(rg4.test("G"));//true console.log(rg4.test("1"));//true console.log("---------------"); var rg3 = /^[a-zA-Z0-9_-]/; console.log(rg3.test("assign"));//true console.log(rg3.test("a"));//true console.log(rg3.test("g"));//true console.log(rg3.test("G"));//true console.log(rg3.test("1"));//true console.log(rg3.test("-_"));//true console.log("---------------"); var rg5 = /^[^a-z]/; console.log(rg5.test("assign"));//false console.log(rg5.test("a"));//false console.log(rg5.test("g"));//false console.log(rg5.test("G"));//true console.log(rg5.test("1"));//true
The number of times a quantifier pattern occurs
console.log("--------- * amount to>=0"); var rg = /^a*$/; console.log(rg.test('')); //true console.log(rg.test('a')); //true console.log(rg.test('aa')); //true console.log("--------- + amount to>=1"); var rg1 = /^a+$/; console.log(rg1.test('')); //false console.log(rg1.test('a')); //true console.log(rg1.test('aa')); //true console.log("--------- ? Equivalent to 1||0 "); var rg2 = /^a?$/; console.log(rg2.test('')); //true console.log(rg2.test('a')); //true console.log(rg2.test('aa'));//false console.log("--------- {2} amount to =2"); var rg3 = /^a{2}$/; console.log(rg3.test('')); //false console.log(rg3.test('a')); //false console.log(rg3.test('aa'));//true console.log("--------- {3,} amount to >=3"); var rg4 = /^a{3,}$/; console.log(rg4.test('')); //false console.log(rg4.test('aa')); //false console.log(rg4.test('aaa'));//true console.log("--------- {3,16} Equivalent to 3~6"); var rg5 = /^a{3,16}$/; console.log(rg5.test('aaaaaa')); //true console.log(rg5.test('aa')); //false console.log(rg5.test('aaaaaaaaaaaaaaaaaaaa'));//false console.log("--------- {11}"); var rg6 = /[0-9]{11}/; console.log(rg6.test('137a7094619')); //false
Parentheses indicate priority.
var rg = /^abc{3}$/; console.log(rg.test('abc')); //false console.log(rg.test('abcabcabc')); //false console.log(rg.test('abccc')); //true console.log("----------- ()") var rg1 = /^(abc){3}$/; console.log(rg1.test('abc')); //false console.log(rg1.test('abcabcabc')); //true console.log(rg1.test('abccc')); //false
Predefined classes are shorthand for some common patterns
- \d: Match any number between 0-9, equivalent to [0-9];
- \D: Match any number except 0-9, equivalent to [^ 0-9];
- \w: Match any letters, numbers and underscores, equivalent to [A-Za-z0-9];
- \W: Match characters other than letters, numbers and underscores, equivalent to [^ A-Za-z0-9];
- \s: Match spaces (including line breaks, tabs, spaces, etc.), equivalent to [\ t\r\n\v\f];
- \S: Match non blank characters, equivalent to [^ \ t\r\n\v\f];
var rg = /^\d{2}$/; console.log(rg.test('a2')); //false console.log(rg.test('22'));//true console.log(rg.test('2')); //false console.log("----------"); var rg1 = /^\d{3}-\d{8}/; var rg2 = /^\d{4}-\d{7}/; console.log(rg1.test('123-12345678'));//true console.log(rg1.test('1232-123456722')); //false console.log(rg2.test('1234-1234567'));//true