校驗郵箱
const isemail = (str) =>[a-z0-9]+$/greturn
reg.test(str)
}
手機號碼正規表示式驗證。
functioncheckphone()$/.test(phone))) }/*
~~~~~~~~~~~~~~~~~~ 或者 ~~~~~~~~~~~~~~~~~
*/function
checkphone()$/.test(phone)))
}
(3|4|5|6|7|8|9) 等效於 [3456789] ,都代表從這些數字中取其一,值得注意的是,或者符號 | 不可在 中使用,它會被認為是乙個可以匹配的符號,而不再是 「或者」 的意思。
校驗使用者名稱
const isvalidusername = (str) =>$/greturn
reg.test(str)
}
數字格式化 1,123,000
"1234567890".replace(/\b(?=(?:\d)+(?!\d))/g,",") //結果:1,234,567,890,匹配的是後面是3*n個數字的非單詞邊界(\b)
\b
匹配非單詞邊界;
\d
匹配乙個數字;
+
是量詞,表示前面的內容重複1到多次
?=
是預言,表示這個位置後面的內容需要滿足的條件,注意只是匹配乙個位置,並不匹配具體的字元,所以是零寬;
?!
也是預言,表示這個位置後面的內容不能滿足的條件,注意也只是匹配乙個位置,並不匹配具體的字元,所以也是零寬;
\d
匹配三個數字,+
表示前面的內容重複1到多次
,所以(\d)+
表示三個數字
的1到多次
,也就是3,6,9...
等3的倍數
個數字的字串;
(?!\d)
匹配乙個位置,這個位置後面不是數字
(?=(\d)+(?!\d) )
匹配乙個位置,這個位置後面首先是3的倍數
個數字的字串,接下來的位置不是數字
/\b(?=(\d)+(?!\d))/g
就是全域性匹配乙個位置,這個位置是非單詞邊界
,然後後面是3的倍數
個數字,然後是非數字
。
比如,字串ad12345678abs
,這個正則匹配的位置就是2後面
的位置,5後面
的位置。2後面
有6(3 * 2)
個數字,5
後面有3(3 * 1)
個數字。
校驗密碼
const isvalidpassword = (str) =>$/g//中:字母+數字、字母+特殊字元、特殊字元+數字
const reg = /^(?![a-za-z]+$)(?![!_~.@#$%^&*?]?$)(?![0-9]+$)[a-za-z!_~.@#$%^&*?0-9]$/g
//弱:純數字、純字母、純特殊字元
const ruo = /^(?:\d+|[a-za-z]+|[!_~.@#$%^&*?]+)$/g
return
[strong.test(str), reg.test(str), ruo.test(str)]
}console.log(isvalidpassword("2?3432"))
/*~~~~~~~~~~~~~?=.* 和 ?=. 區別~~~~~~~~~~~~~~~~
*/const reg = /^(?=.*\d)(?=.*[a-z])(?=.*[a-z]).$/console.log(reg.test("aq123"), reg.test("12aq3")) //
true, true
//必須字母開頭
const exp = /^(?=.[a-za-z])(?=.*\d).$/console.log(exp.test("aq123"), exp.test("12aq3")) //
true, false
校驗身份證
var checkprov = function(val) ;
if(pattern.test(val))
} return
false;}
var checkdate = function
(val) ((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)$/;
if(pattern.test(val))
} return
false;}
var checkcode = function
(val) (18|19|20)\d((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$/;
var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var parity = [ 1, 0, 'x', 9, 8, 7, 6, 5, 4, 3, 2];
var code = val.substring(17);
if(p.test(val))
if(parity[sum % 11] ==code.touppercase())
} return
false;}
var checkid = function
(val)
}}
return
false
;}
char p 和 char p 區別及應用
p的含義是指向常量字元的指標 char p hello 等價於const char p hello 常量字元 說明hello這個字串是無法改變的,則不能更改指標指向的內容,來改變字串hello。p 2 w 錯誤 指向的指標 是可以改變自身的值,輸出p的時候就不是hello了而是別的字串 p news...
正則表達的應用及優化
正規表示式也講究效率的,因為不同的表示式引擎執行的演算法就不同。perl用的引擎是傳統nfa引擎。正規表示式使用要注意第一點 1 使用字元組代替分支條件。比如,使用 a d 或 abcd 表示a d之間的字母,而不要使用 a b c d 因為在匹配單個字元的時候,引擎會把 abcd 這樣的字元組視為...
dl,dt,dd,ul,li,ol區別及應用
ul unordered lists ol ordered lists li lists ol 有序列表 表現為 1 2 3 ul 無序列表,表現為li前面是大圓點而不是123 很多人容易忽略 dl dt dd的用法 dl 內容塊 dt 內容塊的標題 dd 內容 可以這麼寫 標題內容1 內容2dt ...