.1、使用构造函数创建正则表达式
RegExp("正则表达式","匹配模式")
var reg = RegExp("a","i");
i
忽略大小写,g
全局配置
2、使用字面量创建正则表达式
语法 var 变量=/正则表达式/匹配模式
var reg = /a/i
3、或关系 使用 ‘|’ 或 ‘[]’
检查字符串中是否有a或b
var reg = /a|b/ 或 var reg = /[ab]/
检查字符串中是否有字母
var reg = /[A-z]/ [A-Z]检查是否有大写字母 [0-9] 任意数字
检查字符串中除规定字母以外是否还有其他字母 [^]
除了
var reg = /[^ab]
4、正则表达式与String方法的使用
(1)、split拆分字符串
split(“拆分规则”)可以传如正则表达式进行拆分
var str="1a2b3c"
str.spilt(/[a-z]/) 根据字母拆分
str.spilt(/[0-9]/)根据数字拆分
(2)search搜索字符串中是否有指定内容
search(“搜索的内容”) 或传入一个正则表达式,返回第一次出现的索引值
搜索字符串中是否有abc 或 aec 或 adc
var str = "hello abc hello aec adc"
var result = str.search(/a[bed]c/)
(3)、match 提取字符串中符合正则表达式要求的值,并返回一个数组
提取所有符合要求的,需要将匹配模式设为
g
,并且可以设置多个匹配模式,顺序无所谓
/*
* 提取字符串中所有的字母
*/
var str = "1a2f3r45t5hy6jh";
var result = str.match(/[a-z]/ig)
(4)、replace替换字符串中的值
replace('被替换的值','要替换的值')
将字符串中所有的字母替换成空值,获得所有数字
var str = "1a2f3r45t5hy6jh";
var result = str.replace(/[a-z]/g,"")
4、量词{}
(1)通过两次设定一个内容出现的次数
/ab{2}/ b
出现两次
(2)量词只对前一个内容起作用/(ab){2}/ ab
出现两次
(3){n} 正好出现n次
(4){m,n}出现m到n次
(5){n,}出现n次及以上
(6)n+至少出现一次 ={1,}
(7)n*出现0次或多次={0,}
(8)n?出现0次或1次={0,1}
5、^
和$
(1)/[^a]/
匹配除了a的内容
(2)/^a/
匹配以a开头的内容
(3)/$a/
匹配以a结尾的内容,a后面不能再有值
(4)/^a$/
匹配的内容必须以a开头并且a后面没有内容
var reg = /^a$/
var test = "aaaa" // "a" true
console.log(reg.test(test))
输出false,因为a结尾后还有内容aaa
(5)/^a&a$/
以a开头并且以a结尾
var reg = /^a/&&/a$/
var test = "aaaa"
5、手机号正则表达式
1 3 151218012
规则:
第一位以1开头
第二位为3-9之间的数
三位及以后为[0-9]的数出现9次之后不能再有数字 总共11位
/^1[3-9][0-9]{9}$/
var reg = /^1[3-9][0-9]{9}$/
6、检查字符串中是否包含.时需要加上转义字符""。“.“表示任意字符
7、
\w 任意字母、数字、_ 等价于
[A-z0-9_]
\W 除了字母,数字、_[^A-z0-9_]
\d 任意数字
\D 除了数字
\s 空格
\S 除了空格
\b 单次边界
\B 除了单次边界