javaScript正则表达式

正则表达式的基础表
基本元字符
如何创建正则表达式
与正则表达式有关的字符串方法
范围元字符
重复元字符
正则表达式是单字符匹配
什么是 RegExp?
RegExp 语法
概念:元字符
RegExp 对象方法
校验数字的表达式
校验字符的表达式
特殊需求表达式
钱的输入格式
常见的 正则表达式 校验

正则表达式概念及语法

正则表达式是遗传用于定义某种模式的字符,属于字符串范畴,有原义字符和元字符两种字符组成。

1.原义字符:书写在正则表达式中表示为字面意思的字符


2.元字符:书写在正则表达式中表示为特定的含义的字符

基本元字符、范围元字符、重复元字符、转义元字符、贪婪匹配,和后向引用。

基本元字符:

1、. 匹配任意字符。

2、* 匹配前一个字符出现的次数为0次或多次。

3、? 匹配前一个字符出现的次数为0次或1次。

4、+ 匹配前一个字符出现的次数为1次或多次。

5、^ 匹配以后面的字符开头。

6、$ 匹配以前面的字符结尾。

7、| 匹配|两端出现的字符中的任意一个,表示“或”的意思。

**如何创建正则表达式:**

1、利用字面量创建正则表达式:

var reg=/abc/;

 2、利用构造函数创建正则表达式:
 
var reg=new RegExp(“abc”);

 3、创建正则表达式时可以为正则表达式添加修饰符:
 
(1)g,表示全局匹配。

(2)i,表示忽略大小写。

例如:利用字面量创建正则表达式。

      var reg=/a./gi;
      
var str='abcdaefgawdA9fa3eweaa';

例如:利用构造函数创建正则表达式。

  var reg=new RegExp("a.","gi");
  
	var str='abcdaefgawdA9fa3eweaa';
**与正则表达式有关的字符串方法:**

	 1、match(reg):

功能:返回字符串匹配正则表达式reg的子串内容。

该功能返回的是一个长得像数组的对象(只匹配第一个子串)或数组(全局匹配)。

例如:match()返回下列格式。

  ["ab", index: 0, input: "abcdaefgawdA9fa3eweaa", groups: undefined]

索引值为0的元素是匹配正则表达式的唯一结果。

index:返回匹配正则表达式的子串的索引值。

input:返回源字符串。

groups:返回正则表达式的分组结果。

结论:凡是利用match()返回的匹配结果都要带下标。

若字符串没有匹配reg的子串,则返回null。

2、search(reg):

功能:返回字符串匹配正则表达式reg的子串位置。

该功能返回的是一个索引值。

若字符串没有匹配reg的子串,则返回-1。

3、replace():

例1:匹配全部都是由原义字符组成的正则表达式。

   var reg=/abc/;
      
var str='今天我学习了abc';

var a=str.match(reg);

var b=str.search(reg);

console.log(a,b);

例2:第一个元字符(.)。

var reg=/a./;

var str='abcdefg';

var a=str.match(reg);

var b=str.search(reg);

console.log(a,b);

例3:第二个元字符(* ? +)

     var str='banana';
      
      var reg1=/an+/;      //以a开头,字符n出现了1次或多次的子串
      
var reg2=/(an)+/;     //字符an出现了1次或多次的子串

var a=str.match(reg1);  //an

var b=str.match(reg2);  //anan

      console.log(a,b);
  例如:var s=“bannnnann”

var c=str.match(/an*/); //以a开头,字符n出现了0次或多次的子串:annnn

        var d=str.match(/an?/);   //以a开头,字符n出现了0次或1次的子串:an

例4:第七个元字符(|)

  var str=“I like football.”;
  
  var reg=/football|basketball/;
  
  var a=str.match(reg);  //[“football”,index:7,input:“I like football”,groups:undefined]
**范围元字符:**

	1、[abc] 表示匹配字符a或字符b或字符c。
	
	 2、[^abc] 表示匹配除了字符a和字符b和字符c的字符。
	 
	 3、[a-z] 表示匹配所有的小写字母。
	 
	 4、[A-Z] 表示匹配所有的大写字母。
	 
	 5、[0-9] 表示匹配所有的数字。
	 
	 
	 6、[b-d] 表示匹配小写字母b到d。
	 
	 注意:这种正则表达式在书写时必须按照从小到大的顺序书写,例如[z-a]是非法的。
**重复元字符:**

	 1、{m} 限制前一个字符可以重复出现m次。

2、{m,} 限制前一个字符可以重复出现至少m次。

3、{m,n} 限制前一个字符可以重复出现m到n次。

例5:书写一个用来匹配邮政编码的正则表达式。

   石家庄的邮政编码 050000。邮政编码的特点:6位数字。
   
   正则表达式:/[0-9]{6}/

例6:书写一个用来匹配带有区号的固定电话的正则表达式。

   例如:0311-85047726。

固定电话的特点:区号三位或四位,区号必须以0开头,电话号码七位或八位。

正则表达式:/0[0-9]{2,3}-[0-9]{7,8}/

例7:制作一个表单,表单中有一个要求输入固定电话的文本框,如何利用正则表达式进行表单的验证。

 var btnNode=document.querySelector(".btn");
btnNode.addEventListener("click",function(){
	      event.preventDefault();
	      var phone=document.getElementsByName("phone")[0];
	      var reg=/^0[0-9]{2,3}-[0-9]{7,8}$/;
// if(phone.value.match(reg)===null){
	     // if(phone.value.search(reg)===-1){
	     if(!reg.test(phone.value)){
		    alert("您输入的固定电话不符合规格");
	     }else{
		    document.forms[0].submit();
	     }
})
  总结:关于判断字符串中是否具备匹配正则表达式的子串,可以有三种方法。
  
        字符串.match(正则表达式)===null    //成立,不匹配;不成立,匹配
        
        字符串.search(正则表达式)===-1     //成立,不匹配;不成立,匹配
        
        正则表达式.test(字符串)===false     //成立,不匹配;不成立,匹配
**正则表达式是单字符匹配:**

1、1个元字符只能匹配1个字符,或对1个字符进行限制。

 2、例8:设一所培训学校的专业讲师的讲师编号为八位字符,是按照下列规律进行编排的:讲师必须以大写字母T开头,接下来的两位表示讲师的入职年份,取值范围规定为10-30,例如某讲师是2017年入职,则这两位应该取值为17。接下来的两位为主讲课程的编号,规定该培训学校共有15门课程需要讲解,即这两位取值范围为01-15。接下来的两位为讲师顺序号,取值范围为01-99,按照讲师入职的先后顺序排列。最后一位是讲师的学历编号,专科学历为“Z”,本科学历为“B”,研究生学历为“Y”,其他学历不予考虑。
 
结果为:/^T([12][0-9]|30)(0[1-9]|1[0-5])(0[1-9]|[1-9][0-9])(Z|B|Y)$/

javaScript正则表达式_第1张图片
javaScript正则表达式_第2张图片
javaScript正则表达式_第3张图片
javaScript正则表达式_第4张图片
javaScript正则表达式_第5张图片
javaScript正则表达式_第6张图片
javaScript正则表达式_第7张图片
javaScript正则表达式_第8张图片
javaScript正则表达式_第9张图片

**什么是 RegExp?**

RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配。

通常用于格式验证、正则替换、查找子串等

各种编程语言的正则表达式基本相同,不同的语言可能会有一些细小的差别

RegExp 语法

1.// 直接实例化

2.var reg = new RegExp(pattern [, flags])

3.// 隐式创建(推荐)

4.var reg = /pattern/flags;

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 [, flags] 是一个可选的字符串,包含属性 “g”(global )、”i” (ignoreCase)和 “m”(multiline)。

ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

概念:元字符

元字符(Metacharacter)是拥有特殊含义的字符:

元字符 | 作用—|—
\ | 转义符 (、)、/、
| | 选择匹配符,可以匹配多个规则
. | 查找单个字符,除了换行和行结束符。
\w | 查找单词字符。字符 ( 字母 ,数字,下划线_ )
\W | 查找非单词字符。
\d | 查找数字。
\D | 查找非数字字符。
\s | 查找空白字符。空格
\S | 查找非空白字符。
\b | 匹配单词边界。
\B | 匹配非单词边界。
\0 | 查找 NUL 字符。
\n | 查找换行符。
\f | 查找换页符。
\r | 查找回车符。
\t | 查找制表符。
\v | 查找垂直制表符。
\xxx | 查找以八进制数 xxx 规定的字符。
\xdd | 查找以十六进制数 dd 规定的字符。
\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。
javaScript正则表达式_第10张图片

RegExp 对象方法

test()

test() 方法检索字符串中是否存在指定的值。返回值是 true 或 false。

1.var patt1 = new RegExp('e');
2.console.log(patt1.test('some text'));
3.// OUTPUT:true
4.var patt2 = new RegExp('ee');
5.console.log(patt2.test('some text'));
6.// OUTPUT:false
1.// 判断是不是QQ号
2.// 1 首位不能是0  ^[1-9]
3.// 2 必须是 [5, 11] 位的数字 \d{4, 9}
4.var str = '80583600';
5.var regexp = /^[1-9][0-9]{4,10}$/gim;
6.if (regexp.test(str)) {
7.    alert('is');
8.} else {
9.    alert('no');
10.}

exec()

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

1.var patt1 = new RegExp('e');
2.console.log(patt1.exec('some text'));
3.// OUTPUT:e
4.var patt2 = new RegExp('ee');
5.console.log(patt2.exec('some text'));
6.// OUTPUT:null

compile()

compile() 既可以改变检索模式,也可以添加或删除第二个参数

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free")); // true
// 改变了检索模式
patt1.compile("eee");
document.write(patt1.test("The best things in life are free")); // false

支持正则表达式的 String 对象的方法

search 检索与正则表达式相匹配的值。

1.var str = "Visit W3School!"
2.console.log(str.search(/W3School/))
3.// OUTPUT:6

match 找到一个或多个正则表达式的匹配。

var str="1 plus 2 equal 3"
console.log(str.match(/\d+/g))
// OUTPUT:1,2,3

replace 替换与正则表达式匹配的子串。

1.var str = "Visit Microsoft!"
2.console.log(str.replace(/Microsoft/, "W3School"));
3.// OUTPUT:Visit W3School!

1.// 找重复项最多的字符个数

2.var str = ‘g21ss4aeba_ersb43sgnnsssstht6sss60snnsj8resw0_ss’;

3.// split : 将字符串转化为数组

4.// sort : 对数组排序,ASCII

5.// join : 将数组转化为字符串

var str_new = str.split('').sort().join('');
document.write(str);
document.write(str.split(''));
document.write(str.split('').sort());
document.write(str.split('').sort().join(''));

11.// 匹配字符,且重复这个字符,重复次数至少一次。

var regexp = /(\w)\1+/g;
var index = 0;
var value = '';
str_new.replace(regexp, function($0, $1) {
    // document.write($0);
    // document.write($1);
    if (index < $0.length) {
        index = $0.length;
        value = $1;.    }
});

23.document.write(‘重复项最多的字符是:’ + value + ‘,个数是:’ + index);

24.// OUTPUT:
25.// 0012344668__aabbeeegghjnnnnrrssssssssssssssssttw
26.// 重复项最多的字符是:s,个数是:16

split 把字符串分割为字符串数组。

var str = "How are you doing today?"
document.write(str.split(/\s+/));
// OUTPUT:How,are,you,doing,today?

经验:

检验格式(邮箱格式、IP格式)是否正确,用test()

抓取星期(如所有手机号),用exec()、match()

替换敏感词汇,用replace()

**校验数字的表达式** 1.数字:^[0-9]*$

2.n位的数字:^\d{n}$

3.至少n位的数字:^\d{n,}$

4.m-n位的数字:^\d{m,n}$

5.零和非零开头的数字:^(0|[1-9][0-9]*)$

6.非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

7.带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})?$

8.正数、负数、和小数:^(-|+)?\d+(.\d+)?$

9.有两位小数的正实数:1+(.[0-9]{2})?$

10.有1~3位小数的正实数:2+(.[0-9]{1,3})?$

11.非零的正整数:3\d*$ 或 ^([1-9][0-9]){1,3}$ 或 ^+?[1-9][0-9]$

12.非零的负整数:^-[1-9][]0-9"$ 或 ^-[1-9]\d$

13.非负整数:^\d+$ 或 4\d*|0$

14.非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

15.非负浮点数:^\d+(.\d+)?$ 或 5\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$

16.非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0$

17.正浮点数:6\d*.\d*|0.\d*[1-9]\d*$ 或 ^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$

18.负浮点数:^-([1-9]\d*.\d*|0.\d*[1-9]\d*)$ 或 ^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$

19.浮点数:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)$

校验字符的表达式

1.汉字:^[\u4e00-\u9fa5]{0,}$

2.英文和数字:7+$ 或 8{4,40}$

3.长度为3-20的所有字符:^.{3,20}$

4.由26个英文字母组成的字符串:9+$

5.由26个大写英文字母组成的字符串:10+$

6.由26个小写英文字母组成的字符串:11+$

7.由数字和26个英文字母组成的字符串:12+$

8.由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$

9.中文、英文、数字包括下划线:13+$

10.可以输入含有^%&’,;=?KaTeX parse error: Can't use function '\"' in math mode at position 1: \̲"̲等字符:[^%&',;=?\x22]+

11.禁止输入含有的字符:[^\x22]+

特殊需求表达式

1.Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

2.域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

3.InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$

4.手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

5.电话号码(“XXX-XXXXXXX”、“XXXX-XXXXXXXX”、“XXX-XXXXXXX”、“XXX-XXXXXXXX”、"XXXXXXX"和"XXXXXXXX):^((\d{3,4}-)|\d{3.4}-)?\d{7,8}$

6.国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}

7.身份证号(15位、18位数字):^\d{15}|\d{18}$

8.短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

9.帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):14[a-zA-Z0-9_]{4,15}$

10.密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):15\w{5,17}$

11.强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10}$

12.日期格式:^\d{4}-\d{1,2}-\d{1,2}

13.一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$

14.一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$

15.xml文件:^([a-zA-Z]±?)+[a-zA-Z0-9]+\.[x|X][m|M][l|L]$

16.中文字符的正则表达式:[\u4e00-\u9fa5]

17.双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))

18.空白行的正则表达式:\n\s*\r (可以用来删除空白行)

19.HTML标记的正则表达式:<(\S*?)[^>]>.?|<.*? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)

20.首尾空白字符的正则表达式:^\s*|\s*KaTeX parse error: Undefined control sequence: \s at position 4: 或(^\̲s̲*)|(\s*) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)

21.腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)

22.中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)

23.IP地址:\d+.\d+.\d+.\d+ (提取IP地址时有用)

24.IP地址:((??:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))

**钱的输入格式:** 1.有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$

2.这表示任意一个不以0开头的数字,但是,这也意味着一个字符"0"不通过,所以我们采用下面的形式:^(0|[1-9][0-9]*)$

3.一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:^(0|-?[1-9][0-9]*)$

4.这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:16+(.[0-9]+)?$

5.必须说明的是,小数点后面至少应该有1位数,所以"10."是不通过的,但是 “10” 和 “10.2” 是通过的:17+(.[0-9]{2})?$

6.这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:18+(.[0-9]{1,2})?$

7.这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样:19{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$

8.1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$

**常见的 正则表达式 校验**

// 常见的 正则表达式 校验

// QQ号、手机号、Email、是否是数字、去掉前后空格、是否存在中文、邮编、身份证、URL、日期格式、IP

var myRegExp = {
   // 检查字符串是否为合法QQ号码
   isQQ: function(str) {
       // 1 首位不能是0  ^[1-9]
       // 2 必须是 [5, 11] 位的数字  \d{4, 9}
       var reg = /^[1-9][0-9]{4,9}$/gim;
       if (reg.test(str)) {
            console.log('QQ号码格式输入正确');
         return true;
        } else {
            console.log('请输入正确格式的QQ号码');
            return false;
        }
    },
 // 检查字符串是否为合法手机号码
    isPhone: function(str) {
        var reg = /^(0|86|17951)?(13[0-9]|15[012356789]|18[0-9]|14[57]|17[678])[0-9]{8}$/;
        if (reg.test(str)) {
            console.log('手机号码格式输入正确');
            return true;
        } else {
            console.log('请输入正确格式的手机号码');
            return false;
        }
    },
  // 检查字符串是否为合法Email地址
    isEmail: function(str) {
        var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
        // var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
        if (reg.test(str)) {
            console.log('Email格式输入正确');
            return true;
        } else {
            console.log('请输入正确格式的Email');
            return false;
        }
    },
// 检查字符串是否是数字
isNumber: function(str) {
    var reg = /^\d+$/;
    if (reg.test(str)) {
        console.log(str + '是数字');
        return true;
    } else {
        console.log(str + '不是数字');
        return false;
    }
},
  // 去掉前后空格
    trim: function(str) {
        var reg = /^\s+|\s+$/g;
        return str.replace(reg, '');
    },
  // 检查字符串是否存在中文
    isChinese: function(str) {
        var reg = /[\u4e00-\u9fa5]/gm;
        if (reg.test(str)) {
            console.log(str + ' 中存在中文');
            return true;
        } else {
            console.log(str + ' 中不存在中文');
            return false;
        }
    },
   // 检查字符串是否为合法邮政编码
    isPostcode: function(str) {
        // 起始数字不能为0,然后是5个数字  [1-9]\d{5}
        var reg = /^[1-9]\d{5}$/g;
        // var reg = /^[1-9]\d{5}(?!\d)$/;
        if (reg.test(str)) {
            console.log(str + ' 是合法的邮编格式');
            return true;
        } else {
            console.log(str + ' 是不合法的邮编格式');
            return false;
        }
    },
  // 检查字符串是否为合法身份证号码
    isIDcard: function(str) {
        var reg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
        if (reg.test(str)) {
            console.log(str + ' 是合法的身份证号码');
            return true;
        } else {
            console.log(str + ' 是不合法的身份证号码');
            return false;
        }
    },
// 检查字符串是否为合法URL
isURL: function(str) {
    var reg = /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i;
    if (reg.test(str)) {
       console.log(str + ' 是合法的URL');
       return true;
   } else {
       console.log(str + ' 是不合法的URL');
       return false;
    }
},
 // 检查字符串是否为合法日期格式 yyyy-mm-dd
    isDate: function(str) {
        var reg = /^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/;
        if (reg.test(str)) {
            console.log(str + ' 是合法的日期格式');
            return true;
        } else {
            console.log(str + ' 是不合法的日期格式,yyyy-mm-dd');
            return false;
        }
    },
  // 检查字符串是否为合法IP地址
    isIP: function(str) {
        // 1.1.1.1  四段  [0 , 255]
        // 第一段不能为0
        // 每个段不能以0开头
        //
        // 本机IP: 58.50.120.18 湖北省荆州市 电信
        var reg = /^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/gi;
        if (reg.test(str)) {
            console.log(str + ' 是合法的IP地址');
            return true;
        } else {
            console.log(str + ' 是不合法的IP地址');
            return false;
        }
    }
}
// 测试
console.log(myRegExp.isQQ('80583600'));
console.log(myRegExp.isPhone('17607160722'));
console.log(myRegExp.isEmail('[email protected]'));
console.log(myRegExp.isNumber('100a'));
console.log(myRegExp.trim('  100  '));
console.log(myRegExp.isChinese('baixiaoming'));
console.log(myRegExp.isChinese('小明'));
console.log(myRegExp.isPostcode('412345'));
console.log(myRegExp.isIDcard('42091119940927001X'));
console.log(myRegExp.isURL('https://www.baidu.com/'));
console.log(myRegExp.isDate('2017-4-4'));
console.log(myRegExp.isIP('1.0.0.0'));

  1. 0-9 ↩︎

  2. 0-9 ↩︎

  3. 1-9 ↩︎

  4. 1-9 ↩︎

  5. 1-9 ↩︎

  6. 1-9 ↩︎

  7. A-Za-z0-9 ↩︎

  8. A-Za-z0-9 ↩︎

  9. A-Za-z ↩︎

  10. A-Z ↩︎

  11. a-z ↩︎

  12. A-Za-z0-9 ↩︎

  13. \u4E00-\u9FA5A-Za-z0-9_ ↩︎

  14. a-zA-Z ↩︎

  15. a-zA-Z ↩︎

  16. 0-9 ↩︎

  17. 0-9 ↩︎

  18. 0-9 ↩︎

  19. 0-9 ↩︎

你可能感兴趣的:(javaScript,js,正则表达式)