javascript正则表达式笔记

来源:互联网 发布:2016淘宝广告位价格 编辑:程序博客网 时间:2024/06/13 06:38

在javascript里面的定义

  1、通过RegExp构造函数定义一个正则表达式。第一个参数为正则表达式以字符串传入,第二个参数为修饰符也以字符串传入。

例:var caps = new RegExp("[A-Z]", "g");

  2、直接定义一个正则表达式直接量,表达式右正斜杠符号“/”分隔,后直接跟修饰符。(推荐用这种)

例:var caps = /[A-Z]/g;

javascript正则表达式常用的字符

字符 描述 例子 [exp] 对于中括号([])包裹的字符序列,正则表达式处理程序会匹配中括号内的任意一个字符。 [exp]匹配e,x,p中的任意一个字符 [^exp] 在中括号内前方加上^字符,将匹配中括号外的任意一个符号,除去的意思。 [^exp]匹配e、x、p之外的任意一个字符 [exp1-exp2] 使用-连字符表示匹配exp1字符到exp2字符序列中的任意一个字符。 [A-Z]匹配A-Z任意一个字符;[0-9]匹配0-9任意一个数字 (exp) 对于小括号包裹的字符序列,正则表达式会以该字符次序确切进行匹配(包含就能匹配)。 (exp)匹配”exp”这个字符串 (exp1|exp2) 使用管道字符|会匹配一个或多个所提供的表达式。 (exp1|exp2)匹配”exp1”或”exp2”字符序列 exp+ 表达式后使用+字符,表示只有当该表达式被包含一次或者多次时匹配。 exp+匹配exp \s 匹配空白字符,即空格,tab制表符,回车符 A\sB匹配字符串中含A空白符B \S 匹配除了空白字符意外的任意一个字符 A\SB匹配A不是空白符任意字符B \d 匹配从0-9的一个数字 \D 匹配除了数字以为的任意一个字符 \w 匹配一个文字字符,即一个字,数字或字母 \W 匹配除了文字字符意外的任意一个字符

除了常用的表达式,还有的就是修饰符了,用来定义正则表达式该如何使用的,有三种可能的值,可以作为选项单独使用,也可以多个一次使用。

修饰符 描述 g 应用正则表达式在比较字符串中找出所有匹配的项,而不是只返回第一个匹配项 i 应用表达式进行比较匹配的同时,忽略大小写 m 应用表达式对多行的文本进行比较匹配,而不只是比较第一行

javascript正则表达式常见用法

有三种string类型的方法可以使用正则表达式。match()查找出能匹配正则表达式的所有子字符并将结果以字符串数组的形式返回。replace()方法查找和前者相同的子字符并用传入该方法的另一个字符串进行替换。search()只是定位能匹配到正则表达式的第一个子字符串的位置,并以数字序号形式放回字符串在整个字符串中的位置。

    var regEx = /他妈的/g,        string = "我去你他妈的";    alert(string.match(regEx));         //他妈的    alert(string.search(regEx));        //3    alert(string.replace(regEx, "*"));  //我去你*

replace()特殊用法

可用作javascript字符串的replace()方法第二个参数的特殊字符

字符序列 含义 例子 $$ 把找到的字符串用一个单独的$字符代替 “Hello World”.replace(/o/g, “$$”);//”Hell$ W$rld” $& 使用第一个参数中所给定的字符串来替换所找到的子字符串 “Hello World”.replace(/o/g, “$&”);//”Hello World” $`(ESC下面那个`) 使用所找到的字符串之前的文本来替换该子字符串 “Hello World”.replace(/o/g, “$`”);//”HellHell WHello Wrld” $’ 使用所找到的字符串之后的文本来替换该子字符串 “Hello World”.replace(/o/g, “$’”);//”Hell World Wrldrld” $1, $2 当第一个参数中包含的正则表达式使用小括号对进行表达式分组,则可以提取出特定的表达式所匹配的子字符串($1对应第一个小括号,$2对应第二个小括号) “Hello World”.replace(/(o)(r)/g, “$1$2$1$2”);//”Hello Wororldd”(查找到or,然后替换成oror

还有一种就是replace() 的第二个参数可以用函数方式传入,然后用函数的返回值来替换原子字符串。

var count = 0;function replaceWithCount() {    count = count + 1;    return count;   }alert("Hello World".replace(/o/g, replaceWithCount)); //Hell1 W2rldalert("Hello World".replace(/\s/g, replaceWithCount)); //Hello3World

总结

这只是我写的作为笔记的正则表达式一些简单的判断和javascript用法。正则表达式还可以很复杂很强大,那就要再你要使用的时候再去挖掘思考了。如果想了解更多,可以学习Mozilla开发者网络上的关于javascript中使用正则表达式的指引介绍。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions写得更加详细。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 深圳国税公众号预约取号公司怎么办 社保买了停了2年怎么办 qq号被冻结申请不回来了怎么办 qq号被冻结 手机密保忘了怎么办 微信账号封了2天怎么办 买qq号被申诉找回了怎么办 收到了京东白条的催款通知单怎么办 成都买房社保不够两年怎么办18年 电话号码给人设置成骚扰电话怎么办 找不到领导电话不接短信不回怎么办 微信账号被别人手机号冻结了怎么办 微信冻结了手机号也让人换了怎么办 顺丰快递拒收退回丢件了怎么办 京东买东西快递电话没有听到怎么办 在京东购物自己电话号输错了怎么办 北京房子卖了户口没地方迁怎么办 微信弄丢了微信密码找不到了怎么办 微信背人用过找不到密码怎么办 超市的微信支付宝收付款怎么办 办理联华超市的会员储蓄卡怎么办 卡杰文具密码本如果忘记密码怎么办 火狐浏览器阻止要访问的网页怎么办 点我达被永久停用了怎么办 刚下的软件点开系统显示停用怎么办 红酒洋酒啤酒一起喝胃不舒服怎么办 儿子13岁初一不想读书了怎么办 微信不小心点了注册新账号怎么办 在京东买东西商家不发货怎么办 在京东买东西坏了商家不退货怎么办 苯扎氯铵溶液不小心喝了一口怎么办 苯扎氯铵溶液没有稀释就用了怎么办 牛油果切开了但是没熟怎么办 手机安装程序时解析包出错怎么办 因俩人不合适分手了很难受怎么办 中考结束后成绩不好的该怎么办 在京东自营药房买药没有处方怎么办 平安普惠账号不可以注销怎么办? 京东购物非自营货没到降价了怎么办 实体店商家不承认卖的是假货怎么办 衣服上的装饰圆扣掉下来了怎么办 没在京东买东西却收到退款怎么办