可以使用正则的方法
常见的用法
// 1、 2-64位数字英文汉字下划线,只能以字母和汉字开头
let value = '_abcdef'
let nameStatus = new RegExp(/^(?!_)(?![0-9])[a-zA-Z0-9_\u4e00-\u9fa5]{2,64}$/)
let result = nameStatus.test(value)
console.log(result);
//2、验证手机号码
//移动:134(0 - 8) 、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198
//联通:130、131、132、145、155、156、175、176、185、186、166
//电信:133、153、173、177、180、181、189、199
var move = /^((134)|(135)|(136)|(137)|(138)|(139)|(147)|(150)|(151)|(152)|(157)|(158)|(159)|(178)|(182)|(183)|(184)|(187)|(188)|(198))\d{8}$/g;
var link = /^((130)|(131)|(132)|(155)|(156)|(145)|(185)|(186)|(176)|(175)|(170)|(171)|(166))\d{8}$/g;
var telecom = /^((133)|(153)|(173)|(177)|(180)|(181)|(189)|(199))\d{8}$/g;
if (move.test(value)) {
return true;
} else if (link.test(value)) {
return true;
} else if (telecom.test(value)) {
return true;
} else {
return false;
}
//3、校验邮箱
let mailStatus = new RegExp(/[\w]+(\.[\w]+)*@[\w]+(\.[\w])+/);
let result = mailStatus.test(value)
//4、密码校验 8-18位的密码 必须含有字母 数字 和某些特殊字符
let passwordStatus = new RegExp(/^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[@#!$~\%\=\<\>\-\$\(\)\*\+\?\^\{\}\[\]\|])[\S]{8,18}$/)
let result = passwordStatus.test(value)
实际用法
必须含有某个字符
必须含有数字
(?=.*[0-9])
必须含有字母
(?=.*[a-zA-Z])
| 方法 | 描述 |
| --- | --- |
| [`exec`] | 一个在字符串中执行查找匹配的 RegExp 方法,它返回一个数组(未匹配到则返回 null)。 |
| [`test`]| 一个在字符串中测试是否匹配的 RegExp 方法,它返回 true 或 false。 |
| [`match`] | 一个在字符串中执行查找匹配的 String 方法,它返回一个数组,在未匹配到时会返回 null。 |
| [`matchAll`]。 |
| [`search`] | 一个在字符串中测试匹配的 String 方法,它返回匹配到的位置索引,或者在失败时返回 -1。 |
| [`replace`]| 一个在字符串中执行查找匹配的 String 方法,并且使用替换字符串替换掉匹配到的子字符串。 |
| [`split`] | 一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的 `String` 方法。 |
用法规则
1.以某个字符开头
let reg = new RegExp(/^a/)
let string = 'abcdefg'
console.log(reg.test(string));
2. 匹配A或者B
x|y
let reg = new RegExp(/^a|b)
let string = 'bcdefg'
console.log(reg.test(string));
3. 匹配某个范围的字符
[a-z]
4. 整体匹配某一串字符串
[(?:x)]
匹配x但是不记住x ,非捕获括号
可以把括号中的所有字符看做整体,进行匹配
5. 匹配某个字符当他后面或者前面是某种字符--先行断言 后行断言
[x(?=y)]
匹配'x'仅仅当'x'后面跟着'y'.这种叫做先行断言。
[(?<=y)]
匹配'x'仅当'x'前面是'y'.这种叫做后行断言。
6. 匹配某个字符他的前面或者后面不是某种字符 ---否定查找
[x(?!y)]
仅仅当'x'后面不跟着'y'时匹配'x',这被称为正向否定查找。
[(?<!y)x]
仅仅当'x'前面不是'y'时匹配'x',这被称为反向否定查找。
字符簇
[a-z] // 匹配所有的小写字母
[A-Z] // 匹配所有的大写字母
[a-zA-Z] // 匹配所有的字母
[0-9] // 匹配所有的数字
[0-9\.\-] // 匹配所有的数字,句号和减号 dddddd
[ \f\r\t\n] // 匹配所有的白字符
[\u4e00-\u9fa5]//匹配汉汉字
注意: 字符簇只匹配某个范围内的一个字符 如果要匹配读个此类型的字符需要配合其他的表达式
网友评论