正则表达式难记点总结
一路以来遇到正则表达式的地方都是直接去百度的,因为感觉大部分遇到的正则表达式的地方都是很常见的。这次顺便总结下正则表达式比较难记的部分,方便自己日后查阅吧( ̄. ̄) 正则表达式中的特殊字符感觉MDN里面的资料还是挺不错的,特此记录下里面提到过的个人感觉比较难记的部分。
使用正则表达式的js方法js提供了不少使用正则表达式的方法。如RegExp的exec,和String的match、replace、search和split方法。 当你想要知道在一个字符串中的一个匹配是否被找到,你可以使用test或search方法;想得到更多的信息(但是比较慢)则可以使用exec或match方法。如果你使用exec或match方法并且匹配成功了,那么这些方法将返回一个数组并且更新相关的正则表达式对象的属性和预定义的正则表达式对象(详见下)。如果匹配失败,那么exec方法返回null(也就是false)。 match与exec区别从前往往傻傻分不清match和exec的区别,因为两者的作用都是匹配字符串,返回数组,但是在不同情况下两者所返回的内容是不同的。
// 示例: var str = 'cat10,bat20,kat30'; var patten = /w(at)d+/; var arr = str.match(patten); arr[0] <=> ['cat10'] arr[1] <=> ['at'] var arr = patten.exec(str); arr[0] <=> ['cat10'] arr[1] <=> ['at']
exec则永远返回第一个匹配项。但是当连续调用exec时,则每次的返回值都是下一个匹配项。 // 示例1: var str = 'cat,bat,kat'; var patten = /at/g; str.match(patten); //['at','at','at'] patten.exec(str); //['at'] // 示例2: var str = 'cat,kat'; var patten = /w+/g; str.match(patten); //['cat','bat','kat'] //第一次调用 patten.exec(str); //['cat'] //第二次调用 patten.exec(str); //['bat'] //第三次调用 patten.exec(str); //['kat']
exec会返回子表达式的匹配项。换句话说就是,数组第一项存放整个匹配项,数组第二项存放第一个子表达式匹配项,数组第三项存放第二个子表达式匹配项...依次类推。 // 示例: var str = 'cat10,kat30'; var patten = /w(at)d+/g; var arr = str.match(patten); //['cat10','bat20','kat30'] var arr = patten.exec(str); arr[0] <=> ['cat10'] arr[1] <=> ['at'] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |