javascript的正则表达式

正则的一些例子

    var str1="hhxx ttXS gox!2";
    console.log(str1.match(/[xyz]/g));//["x", "x", "x"]    匹配x或y或z
    console.log(str1.match(/[x-z]/g));//["x", "x", "x"]    匹配x到z间的字符
    console.log(str1.match(/[^a-z]/g));//[" ", "X", "S", " ", "!", "2"]   匹配不在x到z间的字符
    console.log(str1.match(/x|hhx/g));//["hhx", "x", "x"]    匹配x或hhx
    console.log(str1.match(/x(?=!)/g));//["x"]   匹配以!跟随的x
    console.log(str1.match(/x(?!!)/g));//["x", "x"]   匹配不以!跟随的x

    console.log("a1-a3".match(/[1\-3]/g));//["1", "-", "3"] 转义字符的使用,匹配1或-或3
    console.log("a1-a3".match(/[1-3]/g));//["1", "3"] 注意与上一行的区别
    console.log(str1.match(/\s/g));//[" ", " "]   匹配空格,\S匹配不是空格
    console.log(str1.match(/\w/g));//["h", "h", "x", "x", "t", "t", "X", "S", "g", "o", "x", "2"]   匹配[A-Za-z0-9_]
    console.log(str1.match(/\W/g));//[" ", " ", "!"]   匹配不是[A-Za-z0-9_],即匹配特殊字符
    console.log(str1.match(/\d/g));//["2"]   匹配不是[0-9_]
    console.log(str1.match(/^hh/g));//["hh"]   匹配hh,而且hh必须是在搜索字符串的开头
    console.log(str1.match(/2$/g));//["2"]   匹配2,而且2必须是在搜索字符串的结尾
    console.log(str1.match(/.../g));//["hhx", "x t", "tXS", " go", "x!2"]   匹配任何字符,除了回车
    console.log(str1.match(/hx*/g));//["h", "hxx"]   *表示匹配x(0到n次)
    console.log(str1.match(/hx?/g));//["h", "hx"]   ?表示匹配x(01次)
    console.log(str1.match(/hx+/g));//["hxx"]   +表示匹配x(至少1次)
    console.log(str1.match(/hx{1,3}/g));//["hxx"]   {}表示匹配x(1次到3次)
    console.log(str1.replace(/(hh)(xx)/g,'$2$1'));//xxhh ttXS gox!2   ()用在replace中进行替换

str1.match(/[xyz]/g)的意思说在str1中找寻满足模式[xyz]的字符串,/g表示寻找到满足的字符串后再接着寻找直到str1结束,每找到一个字符串就存放在数组里,最终返回这个数组,如果一个都没找到则返回null。

解释一下上面的str1.match(/hx?/g),看下其匹配的计算逻辑。首先要匹配的模式是hx?,那么开始从str1的第一个字符查起,字符h满足模式,这时并没有把h存入数组,而是继续查第二个字符h,这时hh不满足模式,那么就将h存入数组。接着查第二个字符h,满足模式,只要满足就继续查直到不满足,所以查到了hx,最终返回结果["h","hx"]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值