regex正则
ZGuangJu 12/31/2020 regex正则
# 验证数字和范围
- 1~10000
/^([1-9]\d{0,3}|10000)$/
/^[1-9]\d{0,3}$|10000/
/^[1-9]\d{0,4}|10000$/
// 严谨点的
1~1000
/^(?!0)(?:[0-9]{1,3}|1000)$/
1~10000
/^(?!0)(?:[0-9]{1,4}|10000)$/
- 1-24
1-24
/^(([1-9])|(1\d)|(2[0-4]))$/
# 手机号正则
- 最新
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
- 一般
// 固话 和 手机
/^0?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57])[0-9]{8}$/
/^1[3|4|5|7|8][0-9]{9}$/
# 邮箱正则
- 最严瑾
/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/
/^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/
/^[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}$/
- 一般
/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
- 使用
//获取文本框,注册失去焦点的事件
document.getElementById("email").onblur = function () {
//判断这个文本框中输入的是不是邮箱
var reg = /^[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}$/;
if (reg.test(this.value)) {
this.style.backgroundColor = "green";
} else {
this.style.backgroundColor = "red";
}
};
# 常用元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
# 常用限定符
代码 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
# 常用反义词
代码 | 说明 |
---|---|
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x 以外的任意字符 |
[^aeiou] | 匹配除了aeiou 这几个字母以外的任意字符 |
# 正则表达式修饰符
标记也称为修饰符,正则表达式的标记用于指定额外的匹配策略。标记不写在正则表达式里,标记位于表达式之外,格式如下:
/pattern/flags
i
:ignore
- 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写:A
和a
没有区别。g
:global
- 全局匹配 查找所有的匹配项。m
:multi line
- 多行匹配 使边界字符^
和$
匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。s
: 特殊字符圆点 . 中包含换行符\n
# 其他验证方式
- 1
// utils.js 公共方法
/**
* 只能输入大于0的正整数(不能以0开头)
* @param {string} value
* @returns {string | number} 返回空字符或数字
*/
integerFn(value) {
const reg = /[1-9]{1}[0-9]*$/
const strArray = value.split('')
let newStrs = ''
for (let i = 0; i < strArray.length; i++) {
if (reg.test(strArray[i])) {
newStrs += strArray[i]
} else if (i > 0 && strArray[i] === '0') {
newStrs += strArray[i]
}
}
if (newStrs - 0 > 0) {
return newStrs - 0
} else {
return ''
}
}
- 2
// main.js 挂载公共方法
import limit from './utils/util.js'
Vue.prototype.$limit = limit