正则表达式常用符号说明:
.是除换行以外的所有任意符号
\s空白符号
\S除空白符号以外的任意符号
\w字母、数字、下划线
\W 除字母、数字、下划线以外的其他任意符号
\d 数字(0----9)
\D 除数字以外的任意其他符号
^ 字符串开始
$ 字符串结束
* 匹配0到无数次(匹配的是符号前边的字母或者数字等)
- 匹配1到无数次(匹配的是符号前边的字母或者数字等)
?匹配0次或1次(匹配的是符号前边的字母或者数字等)
{x} 重复x次
{x,} 重复至少x次
{x,y} 重复x次到y次
\] 字符组,表示字符范围 () 捕获组(子表达式) \\ 转义符号 \\b:匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\\b' 可以匹配 "never" 中的 'er',但不能匹配 "verb" 中的 'er'。 \\b是正则表达式规定的一个特殊代码,代表着单词的开头或结尾,也就是单词的分界处,虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。 总结: \\b 就是用在你匹配整个单词的时候。 如果不是整个单词就不匹配。 你想匹配 I 的话,你知道,很多单词里都有I的,但我只想匹配I,就是"我",这个时候用 \\bI\\b \\B:匹配非单词边界。'er\\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 **字符组:** \[0-9\] 数字0到数组9之间的任意一个 \[a-z\] 字母a到字母z的任意一个 \[\^cfC\] 除了字母 c f C的任意一个字符 \[\\一-\\龥\] 汉字中的任意一个汉字 \[\^a-z\] 除了字母 a 到字母z的任意一个字符 \[\^-a-c\] 除了 - 字符以及字母a到字母z的任意一个字符 \| 多选分支,或者关系 \\1 \\2 ... 反向引用 \< (\\w) \>.\*\\\1\> 引用第一个捕获组的结果,用于匹配html的闭合标签
首先将我们写好的逻辑封装成js文件
javascript
//正则验证:直接引入组件,传需要验证的参数即可,不需要再写test
/**
* 用户名
* @param {*} s
*/
export function UserName(s) {
return /^[a-zA-Z0-9\u4e00-\u9fa5]{2,10}$/.test(s);
}
/**
* 密码
* @param {*} s
*/
export function isPassWord(s) {
return /^[a-zA-Z0-9]{6}$/.test(s);
}
/**
* 邮箱
* @param {*} s
*/
export function isEmail(s) {
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(
s
);
}
/**
* 手机号码
* @param {*} s
*/
export function isMobile(s) {
return /^1[3-9]{10}$/.test(s);
}
/**
* 电话号码
* @param {*} s
*/
export function isPhone(s) {
return /^([0-9]{3,4}-)?([0-9]{3,4}-)?[0-9]{4,5}$/.test(s);
}
/**
* URL地址
* @param {*} s
*/
export function isURL(s) {
return /^http[s]?:\/\/.*/.test(s);
}
在某个文件中的调用
javascript
// 引入自己定义的正则方法
import {isMobile,isPassWord,isPhone,isURL,isEmail,UserName} from './fz'
// 打印看效果
console.log('UserName',UserName('相亲相爱一家人'));
console.log('password',isPassWord('123wew'));
console.log('isMobile',isMobile(1334567890));
console.log('isPhone',isPhone('0109-1723-12394'));
console.log('isURL',isURL('http://localhost:3000/?username=123/'));
console.log('isEmail',isEmail('[email protected]'));