正則的應用 及( 和 區別)

2022-03-08 19:36:29 字數 3123 閱讀 3625

校驗郵箱

const isemail = (str) =>[a-z0-9]+$/g

return

reg.test(str)

}

手機號碼正規表示式驗證。

function

checkphone()$/.test(phone))) }/*

~~~~~~~~~~~~~~~~~~ 或者 ~~~~~~~~~~~~~~~~~

*/function

checkphone()$/.test(phone)))

}

(3|4|5|6|7|8|9) 等效於 [3456789] ,都代表從這些數字中取其一,值得注意的是,或者符號 | 不可在  中使用,它會被認為是乙個可以匹配的符號,而不再是 「或者」 的意思。

校驗使用者名稱

const isvalidusername = (str) =>$/g

return

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 ...