JavaScript之正则表达式详解

JavaScript之正则表达式详解

  1. 什么是正则表达式?
    正则表达式:用于匹配字符串中字符组合的模式,在javascript中,正则表达式也是对象
  2. 正则表达式的作用?
    匹配(验证表单√)
    替换(过滤敏感词)
    提取(从字符串中提取特定成分)
  3. 创建正则表达式的两种方法
    方法一:构造函数
    方法二:字面量
//方法一
var regexp = new RegExp(/123/); //正则表达式里面不需要加引号
console.log(regexp);  // /123/
//方法二
var rg=/123/;
console.log(rg);  //  /123/
  1. test()方法,检查正则表达式是否符合规范,返回值为布尔值
console.log(rg.test('abc'));  //false
  1. 正则表达式预定义类
    什么是预定义类?
    预定义类指的是某些常见模式的简写方式
    a. \d——>[0-9]
    b. \D——>非[0-9]
    c. \w——>[A-Za-z0-9_]
    d. \W——>非[A-Za-z0-9_]
    e. \s——>[\t\r\n\v\f] (空格,换行,制表)
    f. \S——>非空格,换行,制表
var reg1 = /\d/;
console.log(reg1.test(0123)); //true
console.log(reg1.test('afaf')); //false

var reg2 = /\D/;
console.log(reg2.test('ac;adk')); //true
console.log(reg2.test(14124)); //false

var reg3 = /\s/;
console.log(reg3.test(' ')); //true
console.log(reg3.test('ad')); //false
  1. 正则表达式中的特殊字符
    边界符:^ (以什么开始)$(以什么结束)
    字符类:[] (表示有一系列的字符可供选择,只要匹配其中一个就可以了)
    范围符:[-] (从哪到哪)
    取反:^
    优先级:{}
var rg = /abc/; //只要包含有'abc'字符串的都返回true,可以不连续
console.log(rg.test('adaaaaaabcad')); //true
console.log(rg.test('askfhlafjla')); //false

var rg1 = /^ki/; //以'ki'开头的字符串都返回true
console.log(rg1.test('ki')); //true
console.log(rg1.test('k1i123')); //false

var rg2 = /^jisoo$/; //必须是'jisoo'才能返回true
console.log(rg2.test('jisoo')); //true
console.log(rg2.test('jennie')); //false
console.log(reg.test('blackpinkjisoorose')); //false

var rg3 = /[abc]/; //只要包含有a或b或c的字符都返回true
console.log(rg3.test('qao')); //true
console.log(rg3.test('qiq')); //false

var rg4 = /^[abc]$/; //字符串里只有一个a或一个b或一个c才返回true
console.log(rg4.test('c')); //true
console.log(rg4.test('ca')); //false

var rg5 = /[a-z]/; //有a~z任意一个小写字母都可以返回true
console.log(rg5.test('afasgfhaiufhalhc;;;;;ai')); //true
console.log(rg5.test('AGKGUKYYGTK')); //false

var rg6 = /^[a-zA-Z0-9]$/; //有a-z或A-Z或0-9里任何一个字符都返回true
console.log(rg6.test('9')); //true
console.log(rg6.test('aa')); //false

var rg7 = /^[^a-zA-Z0-9]$/; //有a-z或A-Z或0-9里任何一个字符就返回false
console.log(rg7.test('+')); //true
console.log(rg7.test('a')); //false

var rg8 = /^abc{3}$/; //只是让c重复三次才返回true
console.log(rg8.test('abccc')); //true
console.log(rg8.test('abcc')); //false

var rg9 = /^(abc){3}$/; //把abc重复3次
console.log(rg9.test('abcabcabc')); //true
console.log(rg9.test('aaabbbccc')); //false
  1. 正则表达式中的量词符
    a. *(重复零次或更多次)
    b. +(重复一次或更多次)
    c. ?(重复零次或一次)
    d. {n}(重复n次)
    e. {n,m}(重复n到m次)
var reg1 = /^a*$/; //让前面的a这个字符重复0次或更多次
console.log(reg1.test('')); //true
console.log(reg1.test('aa')); //true
console.log(reg1.test('aaa')); //true
console.log(reg1.test('aaaa')); //true

var reg2 = /^a+$/; //让前面的a这个字符重复1次或更多次
console.log(reg2.test('')); //false
console.log(reg2.test('aa')); //true
console.log(reg2.test('aaa')); //true
console.log(reg2.test('aaaa')); //true

var reg3 = /^a?$/; //让前面的a这个字符重复0次或1次
console.log(reg3.test('')); //true
console.log(reg3.test('a')); //true
console.log(reg3.test('aaa')); //false
console.log(reg3.test('aaaa')); //false

var reg4 = /^a{3}$/; //让前面的a这个字符重复3次
console.log(reg4.test('')); //false
console.log(reg4.test('a')); //false
console.log(reg4.test('aaa')); //true
console.log(reg4.test('aaaa')); //false

var reg5 = /^a{4,}$/; //让前面的a这个字符重复4次或多次
console.log(reg5.test('')); //false
console.log(reg5.test('aaaaaaaaaaa')); //true
console.log(reg5.test('aaa')); //false
console.log(reg5.test('aaaa')); //true

var reg6 = /^a{4,6}$/; //让前面的a这个字符重复4次到6次
console.log(reg6.test('')); //false
console.log(reg6.test('aaaaaaaaaaa')); //false
console.log(reg6.test('aaaa')); //true
console.log(reg6.test('aaaaa')); //true
console.log(reg6.test('aaaaaa')); //true


猜你喜欢

转载自blog.csdn.net/Angela_Connie/article/details/110353073
今日推荐