正则表达式
零碎
1.匹配顺序为从左至右,例如表单验证案例中的密码提交
2. 网址验证中关键字(网站名)需要使用+ 匹配前面的子表达式1次或多次
3.身份证号码验证时的前六位:第一位不为0,其他五位可能为0!
4.空字符串的去除(使用正则+replace);其中replace的对象为正则表达式,例如:
- 使用正则匹配的原因:测试字符串内的模式。
- 可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
- 替换文本。 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
- 基于模式匹配从字符串中提取子字符串。 可以查找文档内或输入域内特定的文本。
- 正则对象的使用(主要考虑输出结果的区别)
1) new一个正则对象赋值给变量,正则对象.test(值)或者变量对象.test(值)
,输出结果为true
或false
var exp=/^[0-9]{5}$/;
var reg=new RegExp(exp);
var str="12345";
console.log(reg.test(str));//true
console.log(exp.test(str));//true
2) 直接通过值.match()
,条件不满足返回null
,满足则返回匹配的对象
;此种方法最常使用!
console.log(str.match(exp));//值同上
- 各种符号及含义
1) 非打印字符
2) 特殊字符(要使用转义字符)
3) 限定符
4)定位符
定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。
关于^和$在匹配规则中的作用
基本模式匹配
模式是正则表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。
例如:
^once
这个模式包含一个特殊的字符
^
,表示该模式只匹配那些以once
开头的字符串。例如该模式与字符串"once upon a time"
匹配,与"There once was a man from NewYork"
不匹配。
例如:
bucket$
正如如^符号表示开头一样,$符号用来匹配那些以给定模式结尾的字符串。
这个模式与"Who kept all of this cash in a bucket"
匹配,与"buckets"
不匹配。
例如
^bucket$
字符 ^ 和 $ 同时使用时,表示精确匹配字符串。只匹配字符串"
bucket
"。
例如:
once
与字符串
There once was a man from NewYork Who kept all of his cash in a bucket.
是匹配的。
如果一个模式不包括^和$
,那么它与任何包含该模式
的字符串匹配。
在该模式中的字母(o-n-c-e)是字面的字符,也就是说,他们表示
该字母本身
,数字也是一样的。
- 常见的几种正则验证
1) 邮箱验证
var ereg = /^\w{6,10}\@(qq|163|126)\.com$/;
var email = "1823101695@qq.com";
console.log(email.match(ereg));
2)手机号验证
var pnReg = /1(3|4|5|6|8)\d{9}/;
var phonenum = "12619242968";
console.log(phonenum.match(pnReg));
3)网址验证 格式:https://www.baidu.com
var wreg = /^(http|https)\:\/{2}www\.[0-9a-zA-Z]+\.com$/
var web="https://www.12dD.com";
console.log(web.match(wreg));
4)身份证验证
610523200010012569
年:1900-3999
var idreg=/^[1-9]\d{5}(19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9xX]$/;
var id="610523200010012569";
console.log(id.match(idreg));
以上的输出结果分别为