-
1、在整括号中出现的所有的字符都是代表本身意思的字符(没有特殊的含义,\d这种特殊)
var reg = /^[.]\d+$/; console.log(reg.test("46545"));//->false console.log(reg.test(".89"));//->true var reg1 = /^[.]\d+[+]$/; console.log(reg1.test("46545"));//->false console.log(reg1.test(".89+"));//->true var reg2 = /^[.]\d+0[\d+]$/; console.log(reg2.test("46545"));//->false console.log(reg2.test(".465045"));//->true 如果是465045就是false console.log(reg2.test(".890+"));//->true
-
2、整括号中不识别两位数,整括号内是多个取一个
var reg1 = /^[12]$/;//->1或者2中的一个 console.log(reg1.test("12"));//false console.log(reg1.test("1"));//true console.log(reg1.test("2"));//true var reg2 = /^[12-48]$/;//->1、2-6中的一个、8 三个中的一个 console.log(reg2.test("128"));//false console.log(reg2.test("138"));//false console.log(reg2.test("158"));//false console.log(reg2.test("1"));//true console.log(reg2.test("3"));//true console.log(reg2.test("5"));//true console.log(reg2.test("8"));//true console.log(reg2.test("13"));//false var reg = /^[\w-]$/;//->数字、字母、下划线、- 中的一个 console.log(reg.test("-"));//true console.log(reg.test("89"));//false console.log(reg.test("_"));//true
|的优先级很高;
功能:替换,"或"操作字符具有高于替换运算符的优先级,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",请使用括号创建子表达式,从而产生"(m|f)ood"。
var reg1 = /^18|19$/;
//错误分析:想匹配119和189,1开始,9结尾,中间是8或者1的任意一个;
//实际可以这些数字都是可以匹配成功的:18、19、181、189、119、819、1819...
console.log(reg1.test("19"));//true
console.log(reg1.test("18"));//true
console.log(reg1.test("119"));//true
console.log(reg1.test("189"));//true
console.log("test 189999999999",reg1.test("189999999999"));//true
console.log("test 819",reg1.test("819"));//true
console.log("test 1819",reg1.test("1819"));//true
console.log("test 1889899819",reg1.test("1889899819 "));//true
//正确分析:18|19 可以匹配18开头或者19结尾的;(18开头)、(19结尾)、(18开头和19几位的),都可以匹配成功;
//|替换,"或"操作字符具有高于替换运算符的优先级,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",请使用括号创建子表达式,从而产生"(m|f)ood"。
var testReg1=/m|food/;
//匹配(m开头)、(food结尾)、(m开头或者food结尾);这三种都可以匹配
console.log("test m",testReg1.test("m"));//true
console.log("test m464545646565",testReg1.test("m464545646565"));//true
console.log("test mood",testReg1.test("mood"));//true
console.log("test food",testReg1.test("food"));//true
var testReg2=/(m|f)ood/;
//匹配mood/food
console.log("test m",testReg2.test("m"));//false
console.log("test m464545646565",testReg2.test("m464545646565"));//false
console.log("test mood",testReg2.test("mood"));//true
console.log("test food",testReg2.test("food"));//true
var reg2 = /^(18|19)$/;
//18、19
console.log(reg2.test("19"));//true
console.log(reg2.test("18"));//true
console.log(reg2.test("119"));//false
console.log(reg2.test("189"));//false
var reg3 = /^1[8|1]9$/;
//119、189
console.log("test 19",reg3.test("19"));//false
console.log(reg3.test("18"));//false
console.log(reg3.test("119"));//true
console.log(reg3.test("189"));//true
-
1、有效数字的正则(可以是 正数、负数、零、小数 )
-
1)、"."可以出现也可以不出现,但是一旦出现,后面必须跟着一位或者多位数字
-
2)、最开始可以有+/- 也可以没有
-
3)、整数部分,一位数可以是0-9之间的一个,多位数不能以0开头
var reg = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;//.是一个元字符,所以需要转义; console.log("test +1",reg.test("+1"));//true console.log("test +-1",reg.test("+-1"));//false console.log("test -1.001",reg.test("-1.001"));//true console.log("test -1.001.002",reg.test("-1.001.002"));//false console.log("test 0",reg.test("0"));//true
-
-
2、年龄介于18~65之间
-
18~65可以分为三份;18-19 20-59 60-65
-
因为1开头的不能是12,15,14这些;
-
6开头的不能是66,68这些;
-
2和5开头,后面可以随便,0-9都可以;
var reg = /^(1[8-9]|[2-5]\d|6[0-5])$/; console.log("test 18",reg.test("18"));//true console.log("test 12",reg.test("12"));//false console.log("test 20",reg.test("20"));//true console.log("test 65",reg.test("65"));//true console.log("test 69",reg.test("69"));//false
-
-
3、验证邮箱的正则(简版)
-
左边:数字、字母、下环线、.、-
var reg = /^[\w.-]+@[0-9a-zA-Z]+(\.[a-zA-Z]{2,4}){1,2}$/; /* * \w:数字、字母、下划线中的任意一个字符 [0-9a-zA-Z_] * [\w.-]:[\w]、[.]、[-]三者中的任意一个,出现一次或者多次; * [0-9a-zA-Z]:大小写,或者数字; * (\.[a-zA-Z]{2,4}) .后面加2-4位大小写的域名,比如.com .cn * {1,2} 出现一次或者两次。可能是顶级域名,也可能是二级域名; * */ console.log(reg.test("[email protected]"));//true
-
-
4、汉字昵称 2-4位汉字
var reg = /^[\u4e00-\u9fa5]{2,4}$/;
-
5、身份证号码
var reg1 = /^\d{17}(\d|X|x)$/; //342224199004281111X var reg2 = /^(\d{2})(\d{4})(\d{4})(\d{2})(\d{2})(\d{2})(\d)(\d|X|x)$/; console.log("test 34222819000428111x",reg1.test("34222819000428111x"));//true console.log("test 34222819000428111X",reg1.test("34222819000428111X"));//true console.log("test 34222819000428111x",reg2.test("34222819000428111x"));//true console.log("test 34222819000428111X",reg2.exec("34222819000428111X"));//["34222819000428111X", "34", "2228", "1900", "04", "28", "11", "1", "X", index: 0, input: "34222819000428111X"]
-
6.匹配整数或者0-8位小数;
const test0 = "01";//true const test1 = "1.";//true const test2 = "5";//true const test3 = "999999999.34546782";//true const test4 = "5.10";//true
const test5 = "123.45678.908";//false const test6 = "1s34.5678";//false const test7 = "1s34.3454678332";//false const test8 = "123.45678.";//false
代码如下
const reg=/^\d{1,}\.?\d{0,8}$/;
const test0 = "01";//true
const test1 = "1.";//true
const test2 = "5";//true
const test3 = "999999999.34546782";//true
const test4 = "5.10";//true
const test5 = "123.45678.908";//false
const test6 = "1s34.5678";//false
const test7 = "1s34.3454678332";//false
const test8 = "123.45678.";//false
console.log(reg.test(test0));
console.log(reg.test(test1));
console.log(reg.test(test2));
console.log(reg.test(test3));
console.log(reg.test(test4));
console.log("----");
console.log(reg.test(test5));
console.log(reg.test(test6));
console.log(reg.test(test7));
console.log(reg.test(test8));