常用正则
正则表达式是对象,用来匹配字符串的字符组合
边界符
以^开头,以&结尾,可以实现精确匹配
范围符
以[]限定,只需要匹配其中一个就可以
-为范围符
^在中括号内表示取反,在外面表示开头
量词符 *相当于>=0,出现 0 次或多次
+相当于>=1,出现 1 次货多次
?相当于出现 1 或 0 次
{n}出现 n 次
{n,}大于等于 n 次
{n,m} n-m 次
正则里面的小括号表示优先级
预定义类
\d 相当于 0-9
\D 取反 0-9
\w 相当于任意字母,数字,下划线
\W 取反字母、数字、下划线
\s 相当于空格、下划线、制表符等
\S 相当于取反空格等
正则里面的或者符号为一个|
正则表达式中替换使用 replace(需要替换的值或正则,替换的值);只能替换第一个字符串
/表达式/值,值有三种
g,全局匹配
i,忽略大小写
gi,全局表达式+忽略大小写
n 位数字
const reg = /^\d{n}$/
if (reg.test(value) === true) {
console.log(`匹配成功`)
}
是否以负号或 0-9 的数字开头(含小数)
const reg = /^(-|\+)?\d+(\.\d+)?$/
if (reg.test(value) === true) {
console.log(`匹配成功`)
}
[0-100]不含 0 和 100,只匹配整数
const reg = /^([1-9][0-9]{0,1}|99)$/
if (reg.test(value) === true) {
console.log(`匹配成功`)
}
[0-100]不含 0 和 100,保留小数点后 1 位
const reg = /^([1-9]\d{0,2}|99.9)(\.\d{1})?$/
if (reg.test(value) === true) {
console.log(`匹配成功`)
}
[0-100]不含 0 和 100,保留小数点后 3 位
const reg = /^([1-9][0-9]{0,3}(\.\d{1,3})?|99.999)$/
if (reg.test(value) === true) {
console.log(`匹配成功`)
}
含 0 开头需要先做数据处理
cosnt vaule = val.replace(/^0+(\d)/, '$1').replace(/^\./, '0.')
//第一个replace 0开头,0后为数字,则去掉0 第二个replace 第一位. ,补全0
[0-100]含 0 和 100,只匹配整数
const reg = /^([0-9][0-9]{0,1}|100)$/
if (reg.test(value) === true) {
console.log(`匹配成功`)
}
[0-100]含 0 和 100,保留小数点后 1 位
const reg = /^([0-9]\d{0,2}|100)(\.\d{1})?$/
if (reg.test(value) === true) {
console.log(`匹配成功`)
}
[0-100]含 0 和 100,保留小数点后 3 位
const reg = /^([0-9][0-9]{0,3}(\.\d{1,3})?|100)$/
if (reg.test(value) === true) {
console.log(`匹配成功`)
}
其他
^\d+$ // 匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$ // 匹配正整数
^((-\d+)|(0+))$ // 匹配非正整数 (负整数 + 0)
^-[0-9]*[1-9][0-9]*$ // 匹配负整数
^-?\d+$ // 匹配整数
^\d+(\.\d+)?$ // 匹配非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ // 匹配正浮点数
^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ // 匹配负浮点数
^(-?\d+)(\.\d+)?$ // 匹配浮点数
^[A-Za-z]+$ // 匹配由26个英文字母组成的字符串
^[A-Z]+$ // 匹配由26个英文字母的大写组成的字符串
^[a-z]+$ // 匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ // 匹配由数字和26个英文字母组成的字符串
^\w+$ // 匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ // 匹配email地址
[\u4e00-\u9fa5] // 匹配中文字符的正则表达式
[^\x00-\xff] // 匹配双字节字符(包括汉字在内)
\n[\s| ]*\r // 匹配空行的正则表达式
/<(.*)>.*<\/\1>|<(.*)\/> // 匹配HTML标记的正则表达式
^\S+[a-z A-Z]$ // 匹配首尾空格的正则表达式
^\d{4}\-\d{1,2}-\d{1,2}$ // 只能是2004-10-22格式
^\+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(\.|\-))+[a-z]{2,6}$ // 邮件
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)* // 输入多个地址用逗号或空格分隔邮件
^(\([0-9]+\))?[0-9]{7,8}$ // 电话号码7位或8位或前面有区号例如(022)87341628
^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+(\,[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+)*$ //只能是字母、数字、下划线;必须有@和.同时格式要规范 邮件
^\w+@\w+(\.\w+)+(\,\w+@\w+(\.\w+)+)*$ //简写

浙公网安备 33010602011771号