JavaScript 常用的正则表达式
🌙
手机阅读
本文目录结构
是否为有效数字
规则分析
- 可能出现
+
/-
, 也可能不出现[+-]?
- 一位数的时候,0-9 可以,多位的时候不能为 0
(\d|([1-9]\d+))
- 小数部分可能有,可能没有,一旦有,后面必须有小数点加数字;
(\.\d+)?
let reg = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;
console.log(reg.test(1));
console.log(reg.test(-1));
console.log(reg.test(-1.0));
验证用户密码
规则分析:
- 数字,字母,下划线
- 6~16 位
普通 JavaScript 的写法
function checkPass(val) {
// 长度
if (val.length < 6 || val.length > 16) {
return false;
}
let area = ['a', 'x', 'i', 'h', 'e', 'c', 'o', 'm', '_'];
let array = val.split('');
for (let index = 0; index < array.length; index++) {
const element = array[index];
console.log('element', element);
if (!area.includes(element)) {
return false;
}
}
return true;
}
console.log(checkPass(''));//false
console.log(checkPass('axihe_com'));//true
console.log(checkPass('axihe.com'));//false
console.log(checkPass('123dd'));//false
正则的写法
let reg = /^\w{6,16}$/;
console.log(reg.test(''));//false
console.log(reg.test('axihe_com'));//true
console.log(reg.test('axihe.com'));//false
console.log(reg.test('123dd'));//false
验证真实姓名
规则:
- 汉字,使用 Unicode 码
/[\u4e00-\u9fa5]/
- 名字长度,2-4 位
let reg = /[\u4e00-\u9fa5]{2,4}/;
console.log(reg.test('朱安邦'));
验证邮箱的
规则:
- 核心:邮箱的名字由
数字,字母,下划线,-,.
几部分组成,但是-.
不能连续出现,也不能作为开始 - 开头是数字,字母,下划线(1 到多位)
- 还可以是
-数字字母下划线
或者.数字字母下划线
, 整体零次到多次
片段:anbang@www.axihe.com
- 前面是数字字母下划线中线
.
\w+((\.\w+)|(-\w+))*
- @后面紧跟着一至多个数字和字母
@www
@[A-Za-z0-9]+
- 匹配
.a-b.axihe
,(在域名内,-
属于合法的,可以无限anbang@an-bang.b.c.axihe.com
)((\.|-)[A-Za-z0-9]+)*
- 匹配
@axihe.com
最后的根域名.com
*\.[A-Za-z0-9]+
最终的正则如下
let reg = /^\w+((\.\w+)|(-\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;