正则表达式的两大功能:
- 判断字符串是否符合规定的正则
- 获取匹配的数据
正则表达式两大方法的基本介绍及应用:
test - 判断字符串是否符合规定的正则
rep = /\d+/;
rep.test("asdfoiklfasdf89asdfasdf") //默认只要存在符合的就返回true。
# true
rep = /^\d+$/;
rep.test("891")
# true
exec - 获取匹配的数据
rep = /\d+/;
str = "wangshen_67_houyafa_20"
rep.exec(str)
# ["67"]
正则表达式的分组实现
var test="JavaScript is more fun than Java or JavaBeans!
var pattern = /\bJava(\w*)\b/;
pattern.exec(test)
# ["JavaScript", "Script"]
正则表达式的全局匹配
var test="JavaScript is more fun than Java or JavaBeans!"
var pattern = /\bJava\w*\b/g;
pattern.exec(test)
# ["JavaScript"]
pattern.exec(test)
# ["Java"]
pattern.exec(test)
# ["JavaBeans"]
pattern.exec(test)
# null
pattern.exec(test)
# ["JavaScript"]
var test="JavaScript is more fun than Java or JavaBeans!"
var pattern = /\bJava(\w*)\b/g;
pattern.exec(test)
# ["JavaScript",'Script']
pattern.exec(test)
# ["Java", ""]
pattern.exec(test)
# ["JavaBeans", "Beans"]
pattern.exec(test)
# null
多行匹配:/.../m 表示多行匹配
默认就是多行匹配
test="test content \nJavaScript is more fun than Java or JavaBeans!"
# "test content
JavaScript is more fun than Java or JavaBeans!"
var pattern=/\bJava(\w*)\b/
# undefined
pattern.exec(test);
# ["JavaScript", "Script"]
加上/.../m后
test="JavaScript is more fun than \nJava or JavaBeans!"
# "JavaScript is more fun than
Java or JavaBeans!"
var pattern=/^Java(\w*)/gm
# undefined
pattern.exec(test)
# (2) ["JavaScript", "Script", index: 0, input: "JavaScript is more fun than ↵Java or JavaBeans!"]
pattern.exec(test)
# (2) ["Java", "", index: 29, input: "JavaScript is more fun than ↵Java or JavaBeans!"]
pattern.exec(test)
# null
通过上面的实例可以得知,/.../m表示的多行匹配是字符串之间用换行符换行后,将换行后的开头作为字符串的开头。