字符 | 描述 |
---|
^ | 匹配开头 |
$ | 匹配结尾 |
\ | 将下一个字符标记为特殊字符 |
* | 匹配0次或多次,相当于{0,} |
? | 匹配0次或1次,相当于{0,1} |
+ | 匹配1次或多次,相当于{1,} |
{n} | 匹配n次 |
{n,} | 至少匹配n次 |
{n,m} | 至少匹配n次,最多匹配m次 |
{n} | 匹配n次 |
字符 | 描述 |
---|
? | 跟在其他限制符后,表示非贪婪匹配,默认贪婪模式。例如对于字符串"ooo",o+?匹配到"o",o+匹配到"ooo" |
. | 匹配除换行符外的(\r,\n)任意字符 |
x|y | 匹配x或y。例如/z|good/ 能匹配"z"或者"good",/(z|g)ood/ 能匹配"zood"或"good" |
[xyz] | 匹配所包含的任意一个字符 |
[^xyz] | 匹配未包含的任意一个字符 |
[a-z] | 匹配范围内的任意字符。例如/[a-g]/ 可以匹配 “d”,但无法匹配到g以后的字母 |
[^a-z] | 匹配不在范围内的任意字符 |
\d | 匹配一个数字字符,相当于[0-9] |
\D | 匹配一个非数字字符,相当于[^0-9] |
\w | 匹配数字,字母,下划线,相当于[a-zA-Z0-9_] |
\W | 匹配非数字,字母,下划线,相当于[^a-zA-Z0-9_] |
const isMobile = (value) => {
return /^1[0-9]{10}$/.test(value)
}
const isPhone = (value) => {
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(value)
}
const isPeopleCard = (value) => {
return /^([1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2})$/
}
const isEmail = (value) => {
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
const isURL = (value) => {
return /^((http|https):\/\/)?[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(value)
}