JS中正则表达式的模式匹配

一、常用字符类

  • \w 等价于[a-zA-Z0-9]
  • \W 等价于[^a-zA-Z0-9]
  • \s 任何Unicode空白符(包括空格符、制表符等)
  • \S 任何非Unicode空白符
  • \d 等价于[0-9]
  • \D 等价于[^0-9]

二、重复次数

  • {n,m} 匹配前一项至少n次,至多m次
  • {n,} 匹配前一项至少n次
  • {n} 匹配前一项n次
  • ? 匹配前一项0次或1次
  • +匹配前一项1次或多次
  • *匹配前一项0次或多次

三、分组和引用

  • | 相当于“或”
  • (…) 将几个项组合成一个单元,这个单元可通过”*”、”+”、”?”、”|”等符号修饰,而且可记忆匹配的字符串
  • (?:…)把项组合到一个单元,但不记忆
  • \n 引用第n个分组第一次匹配到的字符,组索引是从左数的左括号,”(?:”形式的分组不参与索引(索引从1开始)

四、锚字符

  • ^ 匹配字符串的开头,多行检索中匹配一行的开头
  • $ 匹配字符串的结尾,多行检索中匹配一行的结尾
  • \b 匹配一个单词的边界
  • \B 匹配非单词边界的位置
  • (?=p)要求接下来的字符都匹配p,但不包括匹配p的字符
  • (?!p) 要求接下来的字符都不匹配p

五、修饰符

  • i 执行不区分大小写的匹配模式
  • g 执行全局匹配模式,即找到所有匹配的字符
  • m 执行多行匹配模式

六、相关String方法

  • search()
    参数是一个正则表达式,返回第一个与之匹配的子串的起始位置,找不到就返回-1
"JavaScript".search(/Java/i);//返回0
  • replace()
    用指定的字符串替换匹配到的子串。第一个参数是一个正则表达式,第二个参数是要进行替换的字符串,返回替换后的字符串
"JavaScriptjavascriptjavascript".replace(/javascript/gi,"Java");//返回"JavaJavaJava"
  • match()
    参数是一个正则表达式,返回一个由匹配结果组成的数组。如果正则表达式设置了修饰符g,则该方法返回的数组包含字符串中的所有匹配结果。
"1 plus 1 equals 2".match(/\d/g);//返回["1", "1", "2"]

当正则表达式不是全局检索时,它也会返回一个数组。这时数组的第一个元素就是匹配的字符串,余下的元素是正则表达式中圆括号括起来的子表达式匹配。

"123 http://wwww.test.com/hahaha123".match(/(\w+):\/\/([\w.]+)\/(\S*)/);//返回["http://wwww.test.com/hahaha123", "http", "wwww.test.com", "hahaha123"]
  • split()
    用于将字符串拆成子串组成的数组
"1, 2,      3".split(/\s*,\s*/);//返回["1", "2", "3"]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值