正则整理

152 阅读1分钟

数字或字母

  1. 只能输入英文和字母:/[\W]/g
  2. 只能输入数字或字母,且必须包含数字和字母
// 只能是数字或字母
const regex1 = /^[A-Za-z0-9]+$/ 
// 必须同时包含数字或字母
const regex2 = /^(?=.*[a-zA-Z])(?=.*\d).+$/ 
if (!regex1.test(value) || !regex2.test(value)) {
   callback(new Error('只能输入数字或字母,且必须包含数字和字母'));
} 

数字

  1. 正整数/^\+?[1-9]\d*$/
  2. 最多(n)位小数/^-?\d+(\.\d{1,n})?$/
  3. 验证是否为有效数字/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/
    • 可能出现 + - 号,也可能不出现 [+-]?
    • 一位0-9都可以,多位首位不能是0 (\d|([1-9]\d+))
    • 小数部分可能有可能没有,一旦有后面必须有小数点+数字 (.\d+)?
  4. 限制只能输入正数、负数,并且最大之只能有两位小数

其他

  • 手机号码格式: /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$|^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$|^0\d{2,3}-?\d{7,8}$/
<el-input
  v-model="temp.upstreamEmissions"
  placeholder=""
  oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,6})?.*$/,'$1')"
/>

混合

  1. 同时包含大小写字母、数字、英文半角特殊符号(!@#$%^&*?)/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*?]).+$/
"^\d+$"``  ``//非负整数(正整数 + 0)
02"^[0-9]*[1-9][0-9]*$"``  ``//正整数

| 03 | "^((-\d+)|(0+))$"``  ``//非正整数(负整数 + 0) | | ---- | ------------------------------------------ |

04"^-[0-9]*[1-9][0-9]*$"``  ``//负整数
05"^-?\d+$"``    ``//整数
06"^\d+(\.\d+)?$"``  ``//非负浮点数(正浮点数 + 0)

| 07 | "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"``  ``//正浮点数 | | ---- | --------------------------------------------------------------------------------------------------- |

| 08 | "^((-\d+(\.\d+)?)|(0+(\.0+)?))$"``  ``//非正浮点数(负浮点数 + 0) | | ---- | -------------------------------------------------------------- |

| 09 | "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"``  ``//负浮点数 | | ---- | ------------------------------------------------------------------------------------------------------ |

10"^(-?\d+)(\.\d+)?$"``  ``//浮点数
11"^[A-Za-z]+$"``  ``//由26个英文字母组成的字符串
12"^[A-Z]+$"``  ``//由26个英文字母的大写组成的字符串
13"^[a-z]+$"``  ``//由26个英文字母的小写组成的字符串
14"^[A-Za-z0-9]+$"``  ``//由数字和26个英文字母组成的字符串
15"^\w+$"``  ``//由数字、26个英文字母或者下划线组成的字符串
16"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"``    ``//email地址
17"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"``  //url