正则表达式: 描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串,将匹配子串替换或者从某个串中取出符合某个条件的子串等。
创建的两种方式:
1.第一种创建方式:
var reg = /abcd/i; //i --> 忽略大小写
var str = "abcd";
2.第一种创建方式:
var str = "abc";
var reg = new RegExp("abc", "m");
正则表达式上的方法: reg.test()
字符串匹配方法: str.match()
字符:
\w === [0-9A-Za-z_] \f 换页符
\W === [^\w] \r 查找回车符合
\d === [0-9] \t 查找制表符,tag键
\D === [^\d] \v 查找垂直制表符
\s === [\t\n\r\v\f]
\S === [^\s]
\b === 单词边界
\B === 非单词边界
贪婪匹配原则
量词:
n+ {1, }
n* {0, }
n? {0, 1}
n { X }
n { x, y}
常用方法解释:
search: 检索与正则表达式想匹配的值。
match: 找到一个或多个正则表达式的匹配。
replace: 替换与正则表达式匹配的子串。
split: 把字符串分割为字符串数组。
经典例题:
1.
// the-last-name
// --> theLastName 变成小驼峰形式
var str = "the-last-name";
var reg = /-(\w)/g;
console.log(str.replace(reg, function($, $1){
return $1.toUpperCase();
}));
// 输出 --> theLastName
2.
//字符串去重
var str = "aaabbbccc";
var reg = /(\w)\1*/g; // \w 反向引用
console.log(str.replace(reg, "$1"));
//输出 abc
3.
var str = "123abc";
var reg = /^[0-9]+abc$/;
document.write(str.match(reg));
//输出 123abc
4.
//题目: 将“500000000” --> 变成 500.000.000
var str = "500000000";
var reg = /(?=(\B)(\d{3})+$)/g;
console.log(str.replace(reg, "."));