js 正则(1) :声明方式、验证、修饰符、只读属性、预定义模式

正则表达式:一种文本匹配模式

声明方式

  1. 字面量(固定正则): /匹配模式/   //  var reg = /a/;
  2. 构造函数(动态正则): new RegExp('匹配模式')  //  var r = new RegExp(a);  或者 var r = new RegExp('mark');

正则验证文本 var word = '来,吧';   var reg = /来/;

正则验证方法   正则.test(待验证文本); // 验证通过返回true,失败返回false  ==> var isPass = reg.test(word);

 

正则修饰符,需要多个出现时可连续书写(顺序无所谓),如 r = /sd/img

  1. i  忽略大小写  //  var r = /acSc/i;  console.log(r.test('efaCsCfd'));
  2. g 全局匹配
  3. m 多行匹配 ( 换行匹配)

正则修饰符只读属性

var r5 = /a/g;     console.log('r5 ==> ', r5);

var r6 = new RegExp('a', 'img');      console.log('r6 ==> ', r6);

  1. 正则是否设置忽略大小修饰符   console.log('r5.ignoreCase ==> ', r5.ignoreCase);
  2. 正则是否设置全局修饰符    console.log('r5.global ==> ', r5.global);
  3. 正则是否设置多行匹配修饰符    console.log('r5.multiline ==> ', r5.multiline);

正则预定义模式

  1. 字符集 [匹配模式], 如 [abc], 在没有量词控制的情况下,只能匹配字符集的任意一个字符;  var reg = /[abc][123]/; reg.test('sa3ds');  // 匹配abc三个字符中的一个+123三个数字中的任意一个,并且匹配到的字母和数字必须是连续的,此时会匹配到a3,若匹配文本更换为('adfb1ds'),则会匹配到b1,若文本更换为('s1asf2d3b')查找不到连续存在的,则会返回false;  匹配时,reg中的匹配模式中的书写顺序即为文本匹配顺序
  2. 汉字范围  [\u4e00-\u9fa5]  //  var reg = /[\u4e00-\u9fa5]/;
  3. 字母范围  [A-Z][a-z] 或者 [A-z] //  var reg = /[A-Z][a-z]/;
  4. 数字范围  [0-9] 等价于 [0123456789] 等价于 \d     //  var reg = /[0-9]/;或者reg = /\d/;
  5. 数字字母下划线(三者无顺序)    [A-z_0-9]  等价于 \w    //  var reg = /[A-z_0-9]/;或者reg = /\w/;
  6. 非数字  [^0-9] 等价于 \D  :  ^ 脱字符,只能放置于匹配模式[ ]中的起始位置,取反 匹配模式中存在的均返回false    //  var reg = /[^0-9]/;或者reg = /\D/; 
  7. 除了数字字母下划线以外的其他字符 [^0-9A-z] 等价于 \W    //  var reg = /[^0-9A-z]/;或者reg = /\W/;
  8. 空白符 [ \t\n\r\f\v]  等价于  \s    //  var reg = /\s/;   \t:制表符、\n:换行符、\r:回车、\f:换页符、\v:垂直制表符
  9. 非空白符 [^ \t\n\r\f\v]  等价于  \S 
  10. 单词边界匹配,单词以空格为边界  \b  //  var word = /\bhello\b/;匹配单词hello,必须保证单词前后为空格,或者单词前无字符及单词后为空格即该单词是行内首单词
  11. 非单词边界匹配  \B
  12. 匹配除了换行符 \n、回车符\r 以外的所有字符,使用英文实心点 . 表示, //  var w = /./;
  13. 若需匹配字符 或其他正则规则字符,则可以在字符前加上转义符\,则可以匹配文本中的 字符或其他

动态正则表达式的转移符:连续两个反斜杠 \ 的出现,表示第一个反斜杠之后的为普通文本,非连续的反斜杠 \ 符号以单独形式出现,其后面为正常的正则字符匹配范围,如:var j = [\\.\\d]; 显示普通文本 ‘ \.\d ’;var j = [\\.\d];(\d 表示匹配的字符范围) 则显示 \.和匹配的数字;

在字符集[]中出现正则规则字符如?+.等字符作文普通文本时均不需要加转义字符反斜杠\,在字符集外则需要;单独出现的反斜杠\属于转义字符,对\后面的字符作转义

匹配模式可拼接:var t = 'sdsc';  var reg = new RegExp('\\.[0-9' + t + ']');  console.log(reg.test('\.2d'));

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值