关于正则表达式,或|的疑问

<!DOCTYPE html>

<html>


<head>

    <meta charset="UTF-8">

    <title></title>

</head>

<body>

</body>

</html>

<script>


//字符类 : 一组相似的元素   [] 中括号的整体代表一个字符

var str = 'abdc';


var re = /a[bde]c/;//bde这几个单词本来就是表达的“或”的关系,我写成re = /a[b|d|e]c/为什么反而弹出false?按照我写的那是变成什么意思了?


alert( re.test(str) );

</script>


有只小跳蛙
浏览 361回答 1
1回答

慕村9548890

var reg1 = /a[bde]c/;&nbsp; &nbsp;// 匹配 "abc" "adc" "aec";var reg2 = /a[b|d|e]c/;&nbsp; &nbsp;// 匹配 "abc" "adc" "aec" "a|c";// 以上两个正则,但凡包含后面所匹配的字符串,都可以通过验证。// 原本 "|" 字符 在正则表达式中表示“或”运算,如需匹配该字符,则要进行转义 即"\|";// 但在 "[]" 中,可能比较特殊吧,因为它内部已经不再需要"|"运算符了,所以即使不进行转义,它也表达了它自身原本的字符含义。正则表达式 (Regular Expression)概念: 记录文本规则的一串代码;在js中:预定义类:&nbsp; &nbsp; .&nbsp; &nbsp; [^\n\r]&nbsp; &nbsp; &nbsp;除了换行和回车之外的任意字符&nbsp; &nbsp; \d&nbsp; &nbsp;[0-9]&nbsp; &nbsp; &nbsp; &nbsp;数字字符&nbsp; &nbsp; \D&nbsp; &nbsp;[^0-9]&nbsp; &nbsp; &nbsp; 非数字字符&nbsp; &nbsp; \w&nbsp; &nbsp;[a-zA-Z0-9]&nbsp; &nbsp; &nbsp;单词字符(在js中,不包含汉字)&nbsp; &nbsp; \W&nbsp; &nbsp;[^a-zA-Z0-9]&nbsp; &nbsp; 非单词字符&nbsp; &nbsp; \s&nbsp; &nbsp;[\f\r\n\t\v]&nbsp; &nbsp; 不可见字符&nbsp; &nbsp; \S&nbsp; &nbsp;[^\f\r\n\t\v]&nbsp; &nbsp;非不可见字符(即可见字符)基础语法:&nbsp; &nbsp; {}&nbsp; &nbsp;里面的数字 表示前面内容出现的次数,{n}次,{n,}n到多次,{n,m}n到m次;&nbsp; &nbsp; +&nbsp; &nbsp; 表示前面的内容有 1 个或多个&nbsp; &nbsp; *&nbsp; &nbsp; 表示前面的内容有 0 个或多个&nbsp; &nbsp; ?&nbsp; &nbsp; 表示前面的内容有 0 个或 1 个&nbsp; &nbsp; 3?也可以写作:(3|)&nbsp; &nbsp; []&nbsp; &nbsp;表示一个字符的位置&nbsp; &nbsp; ()&nbsp; &nbsp;用来分组 可以提高优先级&nbsp; &nbsp; |&nbsp; &nbsp; 或运算符&nbsp; &nbsp; /^内容/&nbsp; &nbsp; 严格限制开头&nbsp; &nbsp; /内容$/&nbsp; &nbsp; 严格限制结尾&nbsp; &nbsp; /^内容&/&nbsp; &nbsp;严格限制内容,不仅仅是开头和结尾!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript