转义字符:
\"-----实现在双引号里再放双引号
\r-----行结束符,即回车
\t-----制表符,键盘得tab键 \n------实现换行
1、正则表达式RegExp(Regular Expression):匹配 特殊字符或有特殊搭配原则的字符 的最佳选择
2、直接量 其本身是一个对象,表达的意义是一种规则。
(1)在两个斜杠中间写规则。
var reg=/abc/;
var str="abcd";
reg.test(str) ; //true 检查在字符串str中有没有符合reg规则得字符
另一种创建表示方法
var reg=new RegExp("小狮子")
var str="小狮子1314"
var res=reg.test(str)
console.log(res) //true
也可用match方法来查看
var reg=/小狮子\./
var str="小狮子.1314"
var res=str.match(reg)
console.log(res) //['小狮子.']
^开头表示开头,$结尾表示末尾
笔试题 去掉字符串的头尾空格
str.tirm()
var reg=/^\s/
var str=" abc"
var re=str.replace(reg,"")
console.log("-"+re)
3、在正则表达式得双斜杠后边还可以加字母i、g、m,表达其属性。
var reg=/a/i
var str="bAcdefAg666"
var res=reg.test(str)
console.log(res) //true
var reg=/a/ig
var str="bAcdefAg6acbb66"
var arr=str.match(reg)
console.log(arr) //['A', 'A', 'a']
4、方括号
^括号中表示非的意思, |表示或的意思
var reg=/[赵钱孙][云鹤][abc]/g;
var str="a钱鹤b赵云cd";
var arr=str.match(reg);
console.log(arr) //['钱鹤b', '赵云c']
var reg=/^[赵钱孙][云鹤][^(a-y)]/g;
var str="钱鹤z赵云zd";
var arr=str.match(reg);
console.log(arr) //['钱鹤z']
var reg=/(abc|bcd)/g;
var str="abc";
str.match(reg);//["abc"];//该规则既能匹配出字符串"abc"
str="bcd";
str.match(reg);//["bcd"];//该规则又能匹配出字符串"bcd"
reg=/(abc|bcd)[0-9]/g; //匹配规则可以任意组合
str="bcd2";
str.match(reg);
5、元字符
元字符是拥有特殊含义的字符,元字符也可以组合放进中括号里去使用,一个元字符代表一位(\d|\D)
6、量词
7、正则对象方法
方法 | 描述 |
---|---|
exec | 寻找字符串中是否含有检测的字符。返回:将找到的字符按数组返回。(execute) |
test | 检测字符串中是否含有检测的字符。返回:boolean。 |
var reg=/ab/g;
var str="abababab";
reg.exec(str);//["ab"],尽管具有global属性,仍然只返回一个"ab"
//再继续,只会从下一个开始
reg.exec(str);//["ab"]
reg.exec(str);//["ab"]
reg.exec(str);//["ab"]
reg.exec(str);//null
reg.exec(str);//["ab"]
reg.exec(str);//["ab"]
8、支持正则表达式的String对象的方法
方法 | 描述 |
---|---|
search | 检索与正则表达式相匹配的值,返回匹配字符串的位置 |
match | 找到一个或多个正则表达式的匹配 |
replace | 替换与正则表达式匹配的字串 |
split | 把字符串分割为字符串数组 |
var str="abcasdfdsgsdfg"
var reg=/a/g
var str2=str.replace(reg,"***")
console.log(str2) //***bc***sdfdsgsdfg
reg=/(\w)\1(\w)\2/g;
str="edbaabbbbee";
str.search(reg);
str.search(reg);//3,与lastIndex无关,只返回第一个符合匹配规则的索引位置
reg=/(\w)\1(\w)\2/g;
str="abc";
str.search(reg);//-1
练习题
去掉字符串前后空格
var str=" hello "
var reg=/(^\s+)|(\s+$)/g
// var re=str.replace(reg,"")
var re=str.trim()
console.log("a"+re+"x")
重复次数
var str="helloalbc"
var count=0;
var temp=0;
while (str.indexOf("l",temp)!=-1){
count++
temp=str.indexOf("l",temp)+1
}
console.log(count)