鍍金池/ 問(wèn)答/HTML5  HTML/ 關(guān)于正則表達(dá)式,或|的疑問(wèn)

關(guān)于正則表達(dá)式,或|的疑問(wèn)

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
</body>

</html>
<script>

//字符類 : 一組相似的元素   [] 中括號(hào)的整體代表一個(gè)字符

var str = 'abdc';

var re = /a[bde]c/;//bde這幾個(gè)單詞本來(lái)就是表達(dá)的“或”的關(guān)系,我寫(xiě)成re = /a[b|d|e]c/為什么反而彈出false?按照我寫(xiě)的那是變成什么意思了?

alert( re.test(str) );
</script>

回答
編輯回答
玩控

clipboard.png

2017年10月2日 10:07
編輯回答
尐潴豬

本來(lái)就該是false啊,你測(cè)試的str是abdc啊,無(wú)論你re寫(xiě)成那個(gè)形式,測(cè)試都是false的,你是不是以為你測(cè)試的str是abcd。

2017年11月24日 10:38
編輯回答
使勁操

用或要么是[bcd ]要么是(b|c|d)

2018年2月21日 23:37
編輯回答
哎呦喂
var reg1 = /a[bde]c/;   // 匹配 "abc" "adc" "aec";
var reg2 = /a[b|d|e]c/;   // 匹配 "abc" "adc" "aec" "a|c";
// 以上兩個(gè)正則,但凡包含后面所匹配的字符串,都可以通過(guò)驗(yàn)證。
// 原本 "|" 字符 在正則表達(dá)式中表示“或”運(yùn)算,如需匹配該字符,則要進(jìn)行轉(zhuǎn)義 即"\|";
// 但在 "[]" 中,可能比較特殊吧,因?yàn)樗鼉?nèi)部已經(jīng)不再需要"|"運(yùn)算符了,所以即使不進(jìn)行轉(zhuǎn)義,它也表達(dá)了它自身原本的字符含義。

正則表達(dá)式 (Regular Expression)
概念: 記錄文本規(guī)則的一串代碼;在js中:

預(yù)定義類:
    .    [^\n\r]     除了換行和回車之外的任意字符
    \d   [0-9]       數(shù)字字符
    \D   [^0-9]      非數(shù)字字符
    \w   [a-zA-Z0-9]     單詞字符(在js中,不包含漢字)
    \W   [^a-zA-Z0-9]    非單詞字符
    \s   [\f\r\n\t\v]    不可見(jiàn)字符
    \S   [^\f\r\n\t\v]   非不可見(jiàn)字符(即可見(jiàn)字符)
基礎(chǔ)語(yǔ)法:
    {}   里面的數(shù)字 表示前面內(nèi)容出現(xiàn)的次數(shù),{n}次,{n,}n到多次,{n,m}n到m次;
    +    表示前面的內(nèi)容有 1 個(gè)或多個(gè)
    *    表示前面的內(nèi)容有 0 個(gè)或多個(gè)
    ?    表示前面的內(nèi)容有 0 個(gè)或 1 個(gè)    3?也可以寫(xiě)作:(3|)
    []   表示一個(gè)字符的位置
    ()   用來(lái)分組 可以提高優(yōu)先級(jí)
    |    或運(yùn)算符
    /^內(nèi)容/    嚴(yán)格限制開(kāi)頭
    /內(nèi)容$/    嚴(yán)格限制結(jié)尾
    /^內(nèi)容&/   嚴(yán)格限制內(nèi)容,不僅僅是開(kāi)頭和結(jié)尾!
2017年1月4日 15:22