下面我们就来实践下他们得用法
// 验证方法
function verificationRule(reg,str){
return reg.test(str)
}
边界的例子
// 以javascript 为左边界
verificationRule(/\bjavascript/,'javascript') // true
// 以script 为有右边界
verificationRule(/script\b/,'javascript') // true
// ^行首匹配,$行尾匹配。以字母数字下划线开头,a结尾
verificationRule(/^\wa$/,'mike_ma') // true
表示次数的例子
// 匹配一到多个
verificationRule(/\w+/,'hello') // true
//匹配0到1个
verificationRule(/ed?/,'hello') // true
//匹配0到多个
verificationRule(/ed*/,'mike') // true
verificationRule(/ed*/,'word') // true
verificationRule(/ed*/,'javascript') // false
//匹配3个数字
verificationRule(/\d{3}/,'5654') // true
往往容易忽略单词边界的问题,正则匹配到就会返回true
verificationRule(/ed*/,'vghfgygihedk') // true
verificationRule(/^ed*$/,'vghfgygihedk') // false
verificationRule(/^ed*$/,'ed') // true
表示或的例子
表示或的元字符常用的有两个|和[];中括号内的每个元字符表示字符串内可能存在。
verificationRule(/x|y/,'xffasihdg') // true
verificationRule(/x|y/,'yasdngkia') // true
verificationRule(/x|y/,'awett') // false
verificationRule(/[x,y]/,'yasdngkia') // true
verificationRule(/[x,y]/,'xjaskuifhx') // true
verificationRule(/[x,y]/,'asfdas') // false
表示分组的例子
如上面的x和y,如果我们想完全匹配x或y,我们就要用到分组()
verificationRule(/^(x|y)$/,'x') // true
verificationRule(/^(x|y)$/,'y') // true
verificationRule(/^(x|y)$/,'xy') // false
表示范围的例子
中括号表示可能存在的字符,数字除了用\d表示,还可以用[0-9]表示,同样的表示大写字母A-Z可以写成[A-Z],小写字母就可以写成[a-z]
我们也可以用中括号表示反向,如[^abc] 除去abc之外的
/^[0-9A-Za-z_]+/
/[\s]+/
修饰符的例子
修饰符比较简单,只有三种
// g 全局匹配
"this is test".match(/is/g);//["is", "is"]
// m多行匹配
"\nIs th\nis it?".match(/^is/m);//["is"]
// i 忽略大小写
"Hello Word".match(/word/i) // ["word"]