JavaScript正则表达式用法汇总

来源:互联网 发布:火车上网络怎么用 编辑:程序博客网 时间:2024/05/25 16:39

 

JavaScript正则表达式的用法

  • 正则表达式是一种可以用于模式匹配和替换的强大工具,在很多语言中都可以应用。JavaScript对正则表达式提供了很好的支持, Javascript中有一个正则表达式对象RegExp。该对象提供了大量的属性和方法来处理正则表达式,同时,String对象也提供了相关的方法来处理正则表达式,在Web应用中,经常使用正则表达式来验证用户输入的信息,例如在用户注册过程中,验证输入的Email地址是否合法。以下我们就介绍一下正则表达式的基本用法。

JavaScript正则表达式的基本用法

  • 正则表达式的作用主要有三:
    • 验证数字是否符合特定模式;
    • 利用正则表达式找到特定文本而后删除或者替换文本;
    • 按模式匹配在字符串中查找查找匹配子字符串。
  • Javascript中使用正则表达式的方法有二:
  • 一是使用RegExp对象
    • 其基本语法为:var rx=new RegExp(pattern[,flags]);,其中参数pattern是一个字符串,表示要使用的正则表达式模式,参数flag为一个可选的字符串,表示如何应用模式的标志,多种标志可以组合使用。
    • 主要有三种模:g;全文查找出现的所有模式;i:忽略大小写;m:多行查找;
  • 二是使用正则表达式直接量 var rx=/pattern/flags;
    • pattern表示使用的正则表达式模式,flag如何应用的标记同上;
  • 模式字符串组成
    • 正则表达式就是有普通字符以及特殊字符(称为元字符)组成的文字模式。元字符前面的字符称为前导符,元字符按功能又分为限定符、定位符等类别,下面对常用的元字符进行列表说明。

常见元字符元字符说明/s匹配单个空格,包括tab键和换行符/S匹配出单个空格符之外的所有字符,/S与/s互为逆运算/d匹配从0~9的数字/w匹配字母,数字或者下划线字符/W匹配所有与/w不匹配的字符,/W与/s互为逆运算/cx匹配由x指明的控制字符。例如,/cZ匹配一个Control-Z。x的值必须为A~Z或者a~z之一。否则,将c视为一个愿意的'c'字符/f匹配一个换页符,等价与/x0c和/cL/n匹配一个换行符,等价于/x0a和/cJ/r匹配一个回车符,等价于/x0d和/cM/t匹配一个制表符,等价于/x09和/cI/v匹配一个垂直制表符。等价于/x0b和/cK.用于匹配除换行符之外的所有字符
限定符说明限定符说明*匹配前导字符出现零次或者多次+匹配前导字符出现一次或者多次?匹配前导字符出现零次或者一次{n}匹配前导字符出现n次,n>=0;{n,}匹配前导字符至少出现n次,n>=0;{n,m}匹配前导字符至少出现n次,最多出现m次;m>n>=0;
定位符说明定位符说明^匹配模式必须出现在目标字符串开头$匹配模式必须出现在目标的结尾/b匹配模式必须出现在目标字符串的开头或者结尾的两个边界之一/B匹配对象必须位于目标字符串的开头和结尾的两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾

  • 正则表达式匹配模式的范围指定符
    • []限定的模式指定了其中一个字符的出现的可能。如/[A-Z]/表示匹配从A到Z的任何一个字符;/[A-Za-z]/表示匹配从A到Z或者从a-z的任何一个字符;
    • ()限定的模式指定()里包含的内容必须同时出现在对象中。如/(abc)[0-9]/意思是目标字符串中出现的abc1,abc2...abc9中9个中的任何一个,而不是ab1,a2等;
    • “|”类似于逻辑运算中的“或”运算,如:/sb|sbb|6/表示与目标对象中的"sb","sbb","6"中任何一个相匹配;
    • 当^符出现在[]中时,表示取否定运算。如:/[^A-G]/表示与目标对象中除了A-G之外的字符相匹配;
  • 字符转义与优先级顺序
  • 在匹配模式需要使用元字符时,需要使用转移字符“/+元字符”表示,如查找“12*”模式,我们可以使用/12/*/表示;构造玩正则表达式以后,就可以像使用数学表达式一样来求值。正则表达式在匹配过程中是按照从左向右的顺序进行的,其操作符具有一定的优先级顺序


优先级顺序优先级操作符说明1/转义符2(),(?:),(?=),[]圆括号和方括号3*,+,?,{n},{n,},{n,m}限定符4^,$,/anyMatchcharacter位置顺序5|或操作

正则对象表达式对象

  • RegExp对象的属性与方法


RegExp对象的静态属性属性说明index只读属性,返回字符串中第一次与模式相匹配的子字符串的开始位置,初始值为-1;input只读属性,返回当前被正则表达式模式作用的字符串,可以简写为“$_”,初始值为空字符串;lastIndex只读属性,返回被查找字符串中下一次成功匹配的子字符串的开始位置,其初始位置为-1,其值会随着匹配的不同而被修改;lastMatch只读属性,返回正则表达式在搜索过程中最后匹配的字符,可以简写为:“$&”;lastParen只读属性,返回正则表达式在查找过程中最后用园括号括起来的子匹配;leftContext只读属性,返回被搜索字符串中从开始位置到最后匹配之前为之间的字符,可以简写为"$^";rightContext只读属性,返回被搜索字符串中从最后一个匹配位置开始到字符串结尾之间的字符,可以简写为"$'";$1-$9代表$1,$2...$9等9个只读属性,返回9个在模式匹配期间找到的,最近保存的部分;RegExp对象的实例属性global只读属性,布尔值,表示创建RegExp时是否设置了g标志,如果设置了则返回true,否则返回false;ignoreCase只读属性,布尔值,表示创建RegExp时是否设置了i标志,如果设置了则返回true,否则返回false;multiline只读属性,布尔值,表示创建RegExp时是否设置了m标志,如果设置了则返回true,否则返回false;source只读属性,字符串型,返回正则表达式模式字符串;RegExp对象的方法exec()RegExp对象的exec()方法是与正则表达式匹配的强大方法,语法格式为:array=reObj.exec(str);test()RegExp对像的Test()方法用于在给定的字符串中测试正则表达式是否匹配,其基本语法为:var passed=reObj.text(str);如果匹配则返回true,否则返回falsecompile()RegExp对象的compile()方法用于将正则表达式编译为内部格式,从而执行得更快,其基本语法为:reObj.compile(pattern[,flag]);

String对象的4个正则表达式用法

String对象的4个正则表达式方法search()用于查找特定子字符串,其基本语法为var str=strObj.search(re);方法返回第一个与正则表达式匹配的子字符串;replace()用于检索与替换操作,其基本语法格式为:strObj.replace(re,str);如果re不是正则表达式,则表示普通字符串替换;match()使用正则表达式模式对字符串进行查找,使用方法为var array=strObj.match(re);返回三个属性:1)input包含整个被查找字符串,2)index包含了整个被查找字符串中的匹配的子字符串的位置,lastindex属性包含了最后一次匹配字符串的位置;split()可以使用正则表达式做参数作为分割字符标志分割字符串;文章出处: http://blog.sina.com.cn/s/blog_5d1f29c10100b35w.html~type=v5_one&label=rela_prevarticle

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

文章采集正则之我见

 

/(/w+).htm 根据上面的参数可知 匹配所有以字符下划线数字字符的以.htm结尾的,比如/123kl_p.html

(/(/w+))*.htm  注意 *可是匹配前导字符 0次或者0次以上的 匹配当前页面所有的以.htm结尾的,并且无限极例如 /q/u/f/j/123_0p.htm.

(/(/w+))+.htm  注意 +可是匹配前导字符 1次或者0次以上的 匹配当前页面所有的以.htm结尾的,并且无限极例如 /q/u/f/j/123_0p.htm. 增加一个过滤功能

下面的唯一与上面不同的是 将w换为了d,也就是缩小了范围 只是匹配数字

/(/d+).htm 根据上面的参数可知 匹配所有以数字.htm结尾的,比如/123.html

(/(/d+))*.htm  注意 *可是匹配前导字符 0次或者0次以上的 匹配当前页面所有的以.htm结尾的,并且无限极例如 /1/2/3/4/1239.htm.

(/(/d+))+.htm  注意 +可是匹配前导字符 1次或者0次以上的 匹配当前页面所有的以.htm结尾的,并且无限极例如 /1/2/3/4/1239.htm. 增加一个过滤功能

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 错过教资认定现场确认怎么办 乡村建设导致民房开裂怎么办 项目部公章丢了怎么办 手机掉了没有卡怎么办 苹果系统软件删了还是出现怎么办 钉钉检测到作弊怎么办 电脑麦说话声音小怎么办 穿越火线麦克风有杂音怎么办 手闲不住就抠东西怎么办 大便堵在肛门口怎么办 在外地流量不够用怎么办 电脑键盘数字键没反应怎么办 音响音量键坏了怎么办 摩托罗拉移动电话通话没声音怎么办 摩托罗拉对讲机充电座坏了怎么办 手机导航键太灵敏怎么办 经侦大队不立案怎么办 槐茂酱菜太咸怎么办 法院执法局执法不公怎么办 搞养殖卖不出去怎么办 孔雀吃了蚯蚓该怎么办 多肉幼苗长徒了怎么办 小鸵鸟嘴断了怎么办 武汉早谢怎么办博大直上 威猛先生伤手了怎么办 嗓子眼边条线下边长块肉怎么办 线长在肉里怎么办 北京买车没有号怎么办 租的车处理违章怎么办 以租代购车不要怎么办 订车的合同掉了怎么办 买车合同丢了怎么办 车的证件都丢了怎么办 桃树直立的徒长枝怎么办 月季花长了独枝怎么办? 6岁半B超没子宫怎么办 学生学籍号和身份证号不一致怎么办 学生学籍号和身份证号不一样怎么办 领导交代的任务完不成怎么办 洗衣机里的衣服有味道怎么办 新买的洗衣机有味道怎么办