\d
//表示至少包含一位数字(0-9)
var reg = /\d/;
console.log(reg.test("abc")); //false
console.log(reg.test("123")); //true
\d\d
//至少包含两位数字
var reg = /\d\d/;
console.log(reg.test("abc")); //false
console.log(reg.test("1")); //false
\D
//至少包含一位非数字
var reg1 = /\D/;
console.log(reg1.test("abc")); //true
console.log(reg1.test("123")); //false
\s
//至少有一位空白(空格 缩进 换行(\n))
var reg3 = /\s/;
console.log(reg3.test("12 ")); //true
console.log(reg3.test("12\n3")); //true,\n是换行
\S
//至少包含一位非空白(空格 缩进 换行)
var reg4 = /\S/;
console.log(reg4.test(" 1")); //true
console.log(reg4.test("\n\n\n")); //false,因为换行全是空白
\w
//包含字母、数字、下划线
var reg5 = /\w/;
console.log(reg5.test("12asasa_")); //true
console.log(reg5.test("_")); //true
console.log(reg5.test("12")); //true
console.log(reg5.test("$")); //false
\w\w
//至少包含两位字母、数字、下划线
var reg5 = /\w\w/;
console.log(reg5.test("12asasa_")); //true
console.log(reg5.test("_")); //false
console.log(reg5.test("12")); //true
console.log(reg5.test("$")); //false
\W
//至少包含一位非字母、数字、下划线
var reg6 = /\W/;
console.log(reg6.test("12asasa_")); //false
console.log(reg6.test("_")); //false
console.log(reg6.test("12")); //false
console.log(reg6.test("$")); //true
.
//任意内容(不算换行)
var reg7 = /./;
console.log(reg7.test("%$!@")); //true
console.log(reg7.test("_c?\n")); //true,除了换行还有其它内容
console.log(reg7.test("\n")); //false,但不能只包含换行
console.log(reg7.test("\n\n\n\n")); //false
\
//转义字符
var reg8 = /\d.\d/; //其中的.代表任意字符
var reg9 = /\d\.\d/; //加上转义字符\转义成了普通的点
console.log(reg8.test("2.34")); //true
console.log(reg8.test("2#34")); //true
console.log(reg9.test("2.34")); //true
console.log(reg9.test("2a34")); //false,中间必须有. ,而不是任意字符
^
//限制开头
var reg = /^\d/; //必须以数字开头
console.log(reg.test("3a1")); //true
console.log(reg.test("ah3")); //false
$
//限制结尾
var reg1 = /\d$/; //必须以数字结尾
console.log(reg1.test("3a1")); //true
console.log(reg1.test("ah")); //false
^
和 $
限制开头和结尾 var reg2 = /^abc$/; //必须以abc开头,以abc结尾
console.log(reg2.test("abc")); //true
console.log(reg2.test("ahbc")); //false
console.log(reg2.test("abch")); //false
*
//代表0~n次
var reg = /\d*/; //0个数字可以,1个或多个数字也可以
console.log(reg.test("abc")); //true
console.log(reg.test("sd12j3")); //true
+
//代表1~n次
var reg1 = /\d+/; //包含1个或多个数字
console.log(reg1.test("abc")); //false
console.log(reg1.test("s21dj3")); //true
?
//代表0~1次
var reg2 = /\d?/; //
console.log(reg2.test("abc")); //true
console.log(reg2.test("1ab")); //true
{n}
//指定次数
var reg3 = /\d{3}/; //出现三次数字,三个数字连续
console.log(reg3.test("abc")); //false
console.log(reg3.test("1a2b3")); //false
console.log(reg3.test("123ab")); //true
{n,}
// 代表>= n次
var reg4 = /\d{3,}/; //大于等于三个数字,三个数字连续
console.log(reg4.test("abc12")); //false
console.log(reg4.test("a12bc12")); //false,有四个数字但是不连续
console.log(reg4.test("a123b")); //true
console.log(reg4.test("ab123456")); //true
{n,m}
//代表n~m次
var reg5 = /\d{3,5}/; //3~5个数字
console.log(reg5.test("abc12")); //false
console.log(reg5.test("a123b")); //true
console.log(reg5.test("ab123456")); //true,虽然超过5了但是也是true,但是exec()函数只能捕获5个数字
()
//代表整体
var reg = /(abc){3}/; //包含三组abc,并且连续
console.log(reg.test("abcabcabc")); //true
console.log(reg.test("abc213abcabc")); //false
|
//代表或
var reg1 = /a|b/; //包含a或b
console.log(reg1.test("a213")); //true
console.log(reg1.test("123b")); //true
[]
var reg2 = /[abcdef]/;//在[]中存在一个以上就对
console.log(reg2.test("xyz")); //false
console.log(reg2.test("xyz123c")); //true,存在一个c
var reg3 = /[abcdef]{3,5}/; //[]中的字母要出现3~5次才对
console.log(reg3.test("ab")); //false
console.log(reg3.test("efab")); //true
//`[a-zA-Z0-9_]`包含大小写字母、数字、下划线,也就是基本元字符中的`\w`
//同时`[0-9]`也就是基本元字符`\d`
//`[^123]`只要有一个不在123范围内的就是true;^123表示必须以123开头,不带[]
exec() 方法用于检索字符串中的正则表达式的匹配,返回值是一个数组。
//exec()捕获片段
var reg = /\d{3}/;//截取三个连续数字
console.log(reg.exec("as1233km")); //'123'
var datestr = "time is from 2022-11-01 12:00:00 to 2022-12-01 12:00:00 ";
var reg = /\d{4}-\d{1,2}-\d{1,2}/; //截取出年月日
var newdatestr = reg.exec(datestr);
// console.log(newdatestr); //'2022-11-01'
console.log(newdatestr[0].split("-").join("/")); //将连接符-换成/,结果是'2022/11/01'
var datestr = "time is from 2022-11-01 12:00:00 to 2022-12-01 12:00:00 ";
var reg = /\d{4}-\d{1,2}-\d{1,2}/g; //加上全局标识符g,可以截取到第二个年月日
var newdatestr = reg.exec(datestr);
console.log(newdatestr); //打印第一个日期:'2022-11-01'
var newdatestr1 = reg.exec(datestr);
console.log(newdatestr1); //打印第二个日期:'2022-12-01'
详细正则语法:https://www.baidufe.com/item/eb10deb92f2c05ca32cf.html