|
# 匹配某个字符串中的数字,这样只会匹配到第一个符合的关键字
rep = /\d+/
str = 'test_67_ceshi_20';
rep.exec(str)
> ["67"]
str='JavaScript is more fun than Java or JavaBeans!'
pattern = /\bJava\w*\b/
pattern.exec(str)
> ["JavaScript"]
# 这里说一个()的语法,如果上面的\w*用括号括起来,那么程序就会把第一次的匹配结果进行第二次匹配
str='JavaScript is more fun than Java or JavaBeans!'
pattern = /\bJava(\w*)\b/
pattern.exec(str)
> ["JavaScript", "Script"]
# /g 全局搜索
str='JavaScript is more fun than Java or JavaBeans!'
pattern = /\bJava(\w*)\b/g
/\bJava(\w*)\b/g
pattern.exec(str)
["JavaScript", "Script"] # 第一次搜索搜出了JavaScript
pattern.exec(str)
["Java", ""] # 第二次搜索搜出了Java
pattern.exec(str)
["JavaBeans", "Beans"] # 第三次搜索搜出了JavaBeans
pattern.exec(str)
null #第四次搜索搜索为空
pattern.exec(str)
["JavaScript", "Script"] # 第五次搜索又重新搜索了
# /m 多行匹配
# js默认就是多行匹配,看例子
str='JavaScript is more fun than \nJava or JavaBeans!'
pattern = /Java(\w*)/g
pattern.exec(str)
["JavaScript", "Script"]
pattern.exec(str)
["Java", ""]
pattern.exec(str)
["JavaBeans", "Beans"]
pattern.exec(str)
null
pattern.exec(str)
["JavaScript", "Script"]
# 但是当正则里面出现了以什么开头或以什么结尾,那么就不一样了
str='JavaScript is more fun than \nJava or JavaBeans!'
pattern = /^Java(\w*)/g
pattern.exec(str)
["JavaScript", "Script"]
pattern.exec(str)
null
# 如果加上m那么就不一样了
str='JavaScript is more fun than \nJava or JavaBeans!'
pattern = /^Java(\w*)/gm
pattern.exec(str)
["JavaScript", "Script"]
pattern.exec(str)
["Java", ""]
pattern.exec(str)
null
pattern.exec(str)
["JavaScript", "Script"] |
|
|