JavaScript advanced (including ES6)-Day04 regular expression

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.

Click jump test website

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

Tags: regex

Posted by mrblom on Sat, 16 Apr 2022 05:50:52 +0930