初学正则 2

下面我们就来实践下他们得用法

// 验证方法
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_]+/相当于/^\w+/
/[\s]+/相当于/^\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"]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。