html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

javascript学习笔记(八)正则表达式_基础知识_

[ ] 已经帮助:人解决问题

基本概念uJKHTML5中文学习网 - HTML5先行者学习网

正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。uJKHTML5中文学习网 - HTML5先行者学习网

首先推荐几个正则表达式编辑器uJKHTML5中文学习网 - HTML5先行者学习网
 Debuggex :https://www.debuggex.com/uJKHTML5中文学习网 - HTML5先行者学习网
 PyRegex:http://www.pyregex.com/uJKHTML5中文学习网 - HTML5先行者学习网
 Regexper:http://www.regexper.com/uJKHTML5中文学习网 - HTML5先行者学习网

正则表达式是一种查找以及字符串替换操作。正则表达式在文本编辑器中广泛使用,比如正则表达式被用于:uJKHTML5中文学习网 - HTML5先行者学习网
[copy]检查文本中是否含有指定的特征词uJKHTML5中文学习网 - HTML5先行者学习网
找出文中匹配特征词的位置uJKHTML5中文学习网 - HTML5先行者学习网
从文本中提取信息,比如:字符串的子串uJKHTML5中文学习网 - HTML5先行者学习网
修改文本uJKHTML5中文学习网 - HTML5先行者学习网

 说明:正则表达式通常用于两种任务:1.验证,2.搜索/替换。用于验证时,通常需要在前后分别加上^和$,以匹配整个待验证字符串;搜索/替换时是否加上此限定则根据搜索的要求而定,此外,也有可能要在前后加上/b而不是^和$。此表所列的常用正则表达式,除个别外均未在前后加上任何限定,请根据需要,自行处理。uJKHTML5中文学习网 - HTML5先行者学习网

优先权顺序uJKHTML5中文学习网 - HTML5先行者学习网

在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先权顺序来求值。 下表从最高优先级到最低优先级列出各种正则表达式操作符的优先权顺序:uJKHTML5中文学习网 - HTML5先行者学习网

操作符 描述
/ 转义符
(), (?:), (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, /anymetacharacter 位置和顺序
uJKHTML5中文学习网 - HTML5先行者学习网

建立正则表达式uJKHTML5中文学习网 - HTML5先行者学习网

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。uJKHTML5中文学习网 - HTML5先行者学习网
 可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式。uJKHTML5中文学习网 - HTML5先行者学习网

对 JScript 而言,分隔符为一对正斜杠 (/) 字符。例如:uJKHTML5中文学习网 - HTML5先行者学习网
/expression/uJKHTML5中文学习网 - HTML5先行者学习网

 对 VBScript 而言,则采用一对引号 ("") 来确定正则表达式的边界。例如:uJKHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
uJKHTML5中文学习网 - HTML5先行者学习网
"expression"uJKHTML5中文学习网 - HTML5先行者学习网
uJKHTML5中文学习网 - HTML5先行者学习网

 看个例子uJKHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
uJKHTML5中文学习网 - HTML5先行者学习网
//匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线uJKHTML5中文学习网 - HTML5先行者学习网

var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$");uJKHTML5中文学习网 - HTML5先行者学习网
if(re.test(aaaa)){uJKHTML5中文学习网 - HTML5先行者学习网
alert("格式正确");uJKHTML5中文学习网 - HTML5先行者学习网
}else{uJKHTML5中文学习网 - HTML5先行者学习网
alert("格式错误");uJKHTML5中文学习网 - HTML5先行者学习网
}uJKHTML5中文学习网 - HTML5先行者学习网

uJKHTML5中文学习网 - HTML5先行者学习网

 正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。uJKHTML5中文学习网 - HTML5先行者学习网

常用的正则表达式uJKHTML5中文学习网 - HTML5先行者学习网

匹配中文字符的正则表达式: [/u4e00-/u9fa5]uJKHTML5中文学习网 - HTML5先行者学习网
 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了uJKHTML5中文学习网 - HTML5先行者学习网

匹配双字节字符(包括汉字在内):[^/x00-/xff]uJKHTML5中文学习网 - HTML5先行者学习网
 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)uJKHTML5中文学习网 - HTML5先行者学习网

匹配空白行的正则表达式:/n/s*/ruJKHTML5中文学习网 - HTML5先行者学习网
 评注:可以用来删除空白行uJKHTML5中文学习网 - HTML5先行者学习网

匹配HTML标记的正则表达式:<(/S*?)[^>]*>.*?<//1>|<.*? />uJKHTML5中文学习网 - HTML5先行者学习网
 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力uJKHTML5中文学习网 - HTML5先行者学习网

匹配首尾空白字符的正则表达式:^/s*|/s*$uJKHTML5中文学习网 - HTML5先行者学习网
 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式uJKHTML5中文学习网 - HTML5先行者学习网

匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*uJKHTML5中文学习网 - HTML5先行者学习网
 评注:表单验证时很实用uJKHTML5中文学习网 - HTML5先行者学习网

匹配网址URL的正则表达式:[a-zA-z]+://[^/s]*uJKHTML5中文学习网 - HTML5先行者学习网
 评注:网上流传的版本功能很有限,上面这个基本可以满足需求uJKHTML5中文学习网 - HTML5先行者学习网

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$uJKHTML5中文学习网 - HTML5先行者学习网
 评注:表单验证时很实用uJKHTML5中文学习网 - HTML5先行者学习网

匹配国内电话号码:/d{3}-/d{8}|/d{4}-/d{7}uJKHTML5中文学习网 - HTML5先行者学习网
 评注:匹配形式如 0511-4405222 或 021-87888822uJKHTML5中文学习网 - HTML5先行者学习网

匹配腾讯QQ号:[1-9][0-9]{4,}uJKHTML5中文学习网 - HTML5先行者学习网
 评注:腾讯QQ号从10000开始uJKHTML5中文学习网 - HTML5先行者学习网

匹配中国邮政编码:[1-9]/d{5}(?!/d)uJKHTML5中文学习网 - HTML5先行者学习网
 评注:中国邮政编码为6位数字uJKHTML5中文学习网 - HTML5先行者学习网

匹配身份证:/d{15}|/d{18}uJKHTML5中文学习网 - HTML5先行者学习网
 评注:中国的身份证为15位或18位uJKHTML5中文学习网 - HTML5先行者学习网

匹配ip地址:/d+/./d+/./d+/./d+uJKHTML5中文学习网 - HTML5先行者学习网
 评注:提取ip地址时有用uJKHTML5中文学习网 - HTML5先行者学习网

匹配特定数字uJKHTML5中文学习网 - HTML5先行者学习网
[copy] ^[1-9]/d*$    //匹配正整数uJKHTML5中文学习网 - HTML5先行者学习网
^-[1-9]/d*$   //匹配负整数uJKHTML5中文学习网 - HTML5先行者学习网
^-?[1-9]/d*$   //匹配整数uJKHTML5中文学习网 - HTML5先行者学习网
^[1-9]/d*|0$  //匹配非负整数(正整数 + 0)uJKHTML5中文学习网 - HTML5先行者学习网
^-[1-9]/d*|0$   //匹配非正整数(负整数 + 0)uJKHTML5中文学习网 - HTML5先行者学习网
^[1-9]/d*/./d*|0/./d*[1-9]/d*$   //匹配正浮点数uJKHTML5中文学习网 - HTML5先行者学习网
^-([1-9]/d*/./d*|0/./d*[1-9]/d*)$  //匹配负浮点数uJKHTML5中文学习网 - HTML5先行者学习网
^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$  //匹配浮点数uJKHTML5中文学习网 - HTML5先行者学习网
^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$   //匹配非负浮点数(正浮点数 + 0)uJKHTML5中文学习网 - HTML5先行者学习网
^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$  //匹配非正浮点数(负浮点数 + 0)uJKHTML5中文学习网 - HTML5先行者学习网

 评注:处理大量数据时有用,具体应用时注意修正uJKHTML5中文学习网 - HTML5先行者学习网

匹配特定字符串uJKHTML5中文学习网 - HTML5先行者学习网
[copy]^[A-Za-z]+$  //匹配由26个英文字母组成的字符串uJKHTML5中文学习网 - HTML5先行者学习网
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串uJKHTML5中文学习网 - HTML5先行者学习网
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串uJKHTML5中文学习网 - HTML5先行者学习网
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串uJKHTML5中文学习网 - HTML5先行者学习网
^/w+$  //匹配由数字、26个英文字母或者下划线组成的字符串uJKHTML5中文学习网 - HTML5先行者学习网

 评注:最基本也是最常用的一些表达式uJKHTML5中文学习网 - HTML5先行者学习网

思维导图uJKHTML5中文学习网 - HTML5先行者学习网

uJKHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助