JavaScript正则表达式

正则表达式的创建

一、创建正则表达式对象

语法:let 变量 = new RegExp( '正则表达式','匹配模式' )

注意:在正则表达式中可以传递一个匹配模式作为第二个参数

分别是:

  • i 忽略大小写

  • g 全局模式匹配

    let reg = new RegExp(‘a’,‘i’);
    let str = ‘a’;
    console.log(reg.test(str)); // true

二、正则表达式的方法

test( ) 用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

let result = reg.test(str);
console.log(reg.test('Abcda')); // true

exec( ) 一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回 null)
如果匹配成功,exec() 方法返回一个数组(包含额外的属性 index 和 input),并更新正则表达式对象的 lastIndex 属性。完全匹配成功的文本将作为返回数组的第一项,从第二项起,后续每项都对应正则表达式内捕获括号里匹配成功的文本。
正则对象的实例化对象的属性 :
lastIndex : lastIndex 是正则表达式的一个可读可写的整型属性,用来指定下一次匹配的起始索引

//  exec() 需要通过多次执行,才能查找到所有匹配的结果 , 依赖于lastIndex 属性
let patt = /a/g;
let str = 'hello a world a nice a';
let res1 = patt.exec(str); 
console.log(res1,patt.lastIndex); //index:6
let res2 = patt.exec(str);
console.log(res2,patt.lastIndex); //index:14
let res3 = patt.exec(str);
console.log(res3,patt.lastIndex); //index:21
//  匹配失败 结果是 null , 此时就会重置 lastIndex = 0;
let res4 = patt.exec(str);
console.log(res4,patt.lastIndex); // null 0
console.log(patt.exec(str)); 
console.log(patt.exec(str)); 

输出结果如下:
JavaScript正则表达式_第1张图片

三、使用字面量创建表达式

语法:let 变量 = /正则表达式/匹配模式

  1. 创建一个表达式,检查一个字符串中是否有 a 或 b

    let reg = /a|b/;
    console.log(reg.test(‘abcd’)); // true

  2. 检查一个字符串中是否含有字母

    • [ab] == a|b
    • [a-z] 任意小写字母
    • [A-Z] 任意大写字母
    • [A-z] 任意字母
    • [0-9] 任意数字

    let reg1 = /[A-z]/;
    console.log(reg1.test(‘dasdf123’)); // true

  3. 检查一个字符串是否含有abc或adc或aec

    let reg2= /a[bed]c/;
    console.log(reg2.test(‘aeca1cavvabc’)); // true

四、字符串与正则表达式相关方法

01. split () 将字符串拆分为一个数组

  1. 方法中可以传递一个正则表达式作为参数,这样方法会根据正则表达式去拆分字符串

  2. 这个方法即使不指定全局匹配,也会全部拆分

    let str = ‘1a2b3c4d5e6f’;
    let result = str.split(/[A-z]/);
    console.log(result);
    // [ ‘1’, ‘2’, ‘3’,‘4’, ‘5’, ‘6’]

你可能感兴趣的:(面试,学习路线,阿里巴巴,正则表达式,javascript,开发语言,经验分享,后端)