一、转义字符
转义字符包括三类:
(1)特定含义:\d \w \s \b
(2)特定符号:\ \’ \” > < . ^ $ * + ?
(3)ASCII表示字符:\nnn \xdd \uxxxx
带有特定含义的转义字符
\d | \D |
---|---|
表示数字0-9 | 相反 表示非数字 |
\w | \W |
表示数字、字母、下划线 | 相反表示非数字、非字母、非下划线 |
\s | \S |
表示空白符 | 相反 表示非空白符 |
利用ASCII表示字符
\nnn:每个n表示1个八进制数字,最多带有3个八进制数字
\xdd:x是固定格式,每个d表示1个十六进制数字,最多带有2个十六进制数字
\uxxxx:u是固定格式,每个x表示1个十六进制数字
二、贪婪匹配与非贪婪匹配
重复概念的元字符: ? + {m,n} {m,} *
匹配时默认采用的是贪婪匹配
贪婪匹配:匹配开头带有最多的结果
非贪婪匹配:在具有贪婪特性的元字符后面添加一个? 匹配开头带有最少的结果
三、分组与后向引用
在表达式中利用()括住的就是一个分组
在分组的后面使用\1来引用前面出现过的分组。\2表示第二个分组。
例:验证用户输入的固定电话号码格式是否为最后四位和区号一致(0311-85040311)
$(".btn").click(function(){
var tel=$("input[name=tel]").val();
var reg=/^(0\d{3})-\d{4}\1$/; //利用\1来引用前面出现过的分组
if(tel.match(reg)==null){
window.alert("请输入末尾四位与区号一致的电话号码");
}
})
replace()方法中使用后向引用
$1只能用在replace()方法的第二个参数中只能用在replace()方法的第二个参数中
$$ 表示一个$
$& 表示整个正则表达式匹配的子串结果
replace()的回调函数
replace()的第二个参数可以是一个回调函数(作为参数的函数就是回调函数)。
格式:字符串.replace(替换谁,换成谁);
格式:字符串.replace(替换谁,function(result,sub){
return 换成谁;
})
result:匹配第一个参数的表达式结果
sub:匹配第一个参数的分组的表达式结果。
例:将句子中每个单词的首字母大写。
$(".btn").click(function(){
var pro=$("input[name=css]").val();
var temp=pro.replace(/\b(\w+)/g,function(result,sub){
var firstLetter=sub.slice(0,1);
var otherLetter=sub.slice(1);
return firstLetter.toUpperCase()+otherLetter;
})
console.log(temp);
})