js之正则

Posted zjz666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js之正则相关的知识,希望对你有一定的参考价值。

1、正则的声明方法

  1)var reg = /abc/; "这个叫对象直接量方式";
  2)var reg = new RegExp("abc") 这个叫构造函数方式;

 

2、正则方法

1)exec() 方法用于检索字符串中的正则表达式的匹配。 返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
  返回的数组中 第0个元素为 0 匹配到的文本
  第1个元素为 index 匹配到的文本出现的位置
  第2个元素为 input 被匹配的字符串
  第3个元素为 length 匹配到的文本的个数

  使用while可以匹配多次
  while (result = reg.exec(str))
    console.log(result)
  
2)test 方法用于检测一个字符串是否匹配某个模式.
  reg.test(str) //返回true或者false

5、可以用于正则的string方法

1)match()

  将字符串中匹配的内容捕获出来
  若加上量词g则一次性捕获所有匹配的内容放到数组里返回,若不加则与exec()的返回值一样
  用法:string.match(regexp)

  match 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 将字符串中匹配的内容捕获出来
  var reg = /abc/g;
  var str = "11abc00abc"
  console.log(str.match(reg));//返回一个数组

  注:如果没有g(不是全局匹配) 则与exec类似
  如果有g(全局匹配) 找到匹配的所有文本返回一个数组

2)replace 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
  str.replace(reg,"44")
  返回值是一个被替换过的新的字符串,不改边原来字符串

3)search() 返回值是相匹配的子串的起始位置。 方法不执行全局匹配,它将忽略标志 g。
  var str="Visit W3School!"
  document.write(str.search(/W3School/)) // 6

4)split() 字符串的分割 ,返回一个数组。正则可以匹配它的分割方式

 

附:
技术图片

 


一、用户名正则

//用户名正则,4到16位(字母,数字,下划线,减号)
var uPattern = /^[a-zA-Z0-9_-]4,16$/;

二、密码强度
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /^.*(?=.6,)(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//输出 true
console.log("=="+pPattern.test("iFat3#"));

三、身份证号(18位)正则
//412724 1991 1014 1575
var cP = /^[1-9]\\d5(18|19|([23]\\d))\\d2((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d3[0-9Xx]$/;

 

以上是关于js之正则的主要内容,如果未能解决你的问题,请参考以下文章

JS之正则

js正则表达式总结之语法层面

[JS]笔记11之正则表达式

js之正则

js正则表达式总结之方法层面

js之数据类型(对象类型——引用类型——正则)