正则表达式使用技巧
1.定义匹配模式
var pattern = /[0-9]+/; //这是一个数字匹配模式,需匹配的内容都放在//中
2.使用匹配模式
str.match(pattern); //str是需要匹配的字符串,match是匹配方法
正则表达式语法
普通字符
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
非打印字符
非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:
image.png
特殊字符
image.png
限定符
image.png
定位符
image.png
注意:不能将限定符与定位符一起使用。由于在紧靠换行或者字边界的前面或后面不能有一个以上位置,因此不允许诸如 ^* 之类的表达式。
若要匹配一行文本开始处的文本,请在正则表达式的开始使用 ^ 字符。不要将 ^ 的这种用法与中括号表达式内的用法混淆。
若要匹配一行文本的结束处的文本,请在正则表达式的结束处使用 $ 字符。
所谓 字边界 就是两个单词以空格为边界,\b 匹配的是一个单词的开头或结尾部分,而 \B 匹配的是单词的中间部分
注意
. 特殊字符在中括号表达式时 如 [.] 只会匹配 .字符,等价于 .,而非匹配除换行符 \n 外的所有字符。
^ 和 [^指定字符串] 之间的区别:
^ 指的是匹配字符串开始的位置
[^指定字符串] 指的是除指定字符串以外的其他字符串
元字符
运算符优先级
image.png
修饰符
image.png
*支持正则表达式的 String 对象的方法
image.png
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
str.serch(pattern); //若找到则返回匹配到的字符串的起始位置,否则返回-1,不支持全局检索,也不支持从后往前检索
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
str.match(pattern); //若找到就返回字符,否则返回null,若全局匹配,返回数组
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
str.replace(pattern,replacement); //用replacement替换匹配的字符,replace很强大还支持换位
uw=name.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);
//首字母变大写
RegExp 对象方法
image.png
compile() 方法用于在脚本执行过程中编译正则表达式。
compile() 方法也可用于改变和重新编译正则表达式。
RegExpObject.compile(regexp,modifier)
image.png
pattern.compile(pattern1) // 将匹配模式换为pattern1
exec() 方法用于检索字符串中的正则表达式的匹配
RegExpObject.exec(string)
返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null
test() 方法用于检测一个字符串是否匹配某个模式.
RegExpObject.test(string)
如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
RegExp 对象属性
image.png
global 属性用于返回正则表达式是否具有标志 "g"。
它声明了给定的正则表达式是否执行全局匹配。
如果 g 标志被设置,则该属性为 true,否则为 false。
RegExpObject.global
ignoreCase 属性规定是否设置 "i" 标志。
如果设置了 "i" 标志,则返回 true,否则返回 false
RegExpObject.ignoreCase
lastIndex 属性用于规定下次匹配的起始位置。
RegExpObject.lastIndex
重要事项:不具有标志 g 和不表示全局模式的 RegExp 对象不能使用 lastIndex 属性。
提示:如果在成功地匹配了某个字符串之后就开始检索另一个新的字符串,需要手动地把这个属性设置为 0
multiline 属性用于返回正则表达式是否具有标志 m。
它声明了给定的正则表达式是否以多行模式执行模式匹配。
RegExpObject.multiline
source 属性用于返回模式匹配所用的文本。
该文本不包括正则表达式直接量使用的定界符,也不包括标志 g、i、m。
RegExpObject.source
var str = "Visit W3School.com.cn";
var patt1 = new RegExp("W3S","g");
document.write("The regular expression is: " + patt1.source); //w3s
正则语法
直接量语法
/pattern/attributes //参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配
创建 RegExp 对象的语法:
new RegExp(pattern, attributes);
网友评论