regex正则

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 - 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写: Aa 没有区别。
  • 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
最后提交: 2/13/2023, 11:11:57 AM