美文网首页
正则式随笔

正则式随笔

作者: onlyHalfSoul | 来源:发表于2018-05-25 14:48 被阅读0次

验证手机号码

var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则
var phoneNum = '15507621999';//手机号码
var flag = reg.test(phoneNum); //true
简易版:var reg = /^1[0-9]{10}$/;

正则表达式对手机号的验证^[1][3-8]+\d{9}
^首字母
[1]必须是1,方格可以去掉吧。。
[3-8]第二个数字为3-8之间
+加表示至少一个[3-8]
\d表示数字
{9}表示9个,就是9个数字。

邮箱验证demo

<form action="">
  输入:<input type="text" name="mazey" id="mazey" placeholder="请输入邮箱">
  <input type="button" value="验证" onclick="check();">
</form>
<script>
function check(){
  var reg = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$"); //正则表达式
   var obj = document.getElementById("mazey"); //要验证的对象
   if(obj.value === ""){ //输入不能为空
     alert("输入不能为空!");
    return false;
  }else if(!reg.test(obj.value)){ //正则验证不通过,格式不对
     alert("验证不通过!");
    return false;
  }else{
    alert("通过!");
    return true;
  }
}
</script>

正则表达式

● ^$:表示匹配值的开始和结尾。
● +:1+,一个或更多。
● *:0+,零个或更多。
● ?:0/1,零个或一个。
● {1,2}:1<=length<=2,长度。
● ():表示一个表达式的组。
● []:匹配的字符范围,我理解为一个块,很多块放在一个组()里面。

匹配中文字符

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
[\u4e00-\u9fa5] 指匹配在这两个Unicode编码之间的字符;

双字节汉字

匹配双字节字符(包括汉字在内):[^\x00-\xff]

RegExp对象的使用

1.1 创建RegExp对象
new RegExp("必选,正则表达式","可选,匹配模式g,i,m")

1.2 RegExp对象的方法
•test:检索字符串中的指定值,返回True或False。
•exec:检索字符串中的指定值,返回找到的值,没有则null。
•complie:用于改变正则表达式,或增删匹配模式。

1.2.1 test()
var r1 = new RegExp('world');
console.log(r1.test('Hello, world!')); //true
console.log(r1.test('Hello, World!')); //false
var r2 = new RegExp('world', 'i'); //大小写不敏感
console.log(r2.test('Hello, World!')); //true
var r3 = new RegExp(/world/i); //简写
console.log(r3.test('Hello, World!')); //true

1.2.2 exec()
var r1 = new RegExp('world');
console.log(r1.exec('Hello, world!')); //['world']
console.log(r1.exec('Hello, World!')); //null
var r2 = new RegExp('world', 'i'); //大小写不敏感
console.log(r2.exec('Hello, World!')); //['world']
var r3 = new RegExp(/world/i); //简写
console.log(r3.exec('Hello, World!')); //['world']
var r4 = new RegExp('o');
console.log(r4.exec('Hello, World!')); //['o']
var r5 = new RegExp('o', 'gi');
console.log(r5.exec('Hello, WOrld!')); //['o']
console.log(r5.lastIndex); //5 匹配文本的第一个字符的位置,o为4,下一个位置为5
console.log(r5.exec('Hello, WOrld!')); //['O'] 匹配完第一个o后调用继续匹配
console.log(r5.lastIndex); //9
console.log(r5.exec('Hello, WOrld!')); //null 匹配不到返回null
console.log(r5.lastIndex); //0 lastIndex重置为0

1.2.3 complie()
var r1 = new RegExp('world');
console.log(r1.exec('Hello, world!')); //['world']
r1.compile('o');
console.log(r1.exec('Hello, World!')); //['o']
r1.compile('m');
console.log(r1.exec('Hello, World!')); //null
var r2 = new RegExp('world');
console.log(r2.test('Hello, world!')); //true
r2.compile('mazey');
console.log(r2.test('Hello, world!')); //false

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

相关文章

  • 2018-04-13

    Java学习随笔 ——正则表示式 正则表达式初级版 在使用正则表达式之前,需要import java.util.r...

  • 正则式随笔

    验证手机号码 正则表达式对手机号的验证^[1][3-8]+\d{9}^首字母[1]必须是1,方格可以去掉吧。。[3...

  • 《Oracle Java SE编程指南》28-01:秒懂正则表达

    内容导航: 前言 1、词式1.1、AABB式1.2、ABAC式 2、正则表达式 前言 正则表达式,其实我们早就在小...

  • NSRegularExpression使用

    使用正则式匹配NSRegularExpression 其他

  • 2018-08-22

    Java学习随笔 正则表达式性能问题 听说正则的性能很是问题,具体的比较可以参考 http://blog.sina...

  • 正则表达式

    一、定义正则1、显式定义: 一眼就看明白var 变量名 = new RegExp("正则表达式模式");2、隐式定...

  • 可以判断电话号码是否合法的那个类

    一直在用正则式判断电话号码是否合法,然而我还不很会写正则式,后来发现了这样一个类——NSDataDetector。...

  • javascript中的正则表达式

    工作原理:通配符匹配技术 创建正则表达式 1. 显式创建 var pattern=new RegExp("正则表达...

  • 正则表达笔记

    #加载正则表示(regularexpression)式,python的正则表达式引擎是用c语言写的,效率极高 im...

  • 正则式匹配

    Implement regular expression matching with support for '....

网友评论

      本文标题:正则式随笔

      本文链接:https://www.haomeiwen.com/subject/xdxujftx.html