ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaScript之正则表达式

2020-11-29 21:34:14  阅读:128  来源: 互联网

标签:console log 正则表达式 JavaScript var test false true


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'));  //true
  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


标签:console,log,正则表达式,JavaScript,var,test,false,true
来源: https://blog.csdn.net/Angela_Connie/article/details/110353073

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有