为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

有只小跳蛙 2019-02-28 22:19:15
<!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>
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

var reg1 = /a[bde]c/;   // 匹配 "abc" "adc" "aec";

var reg2 = /a[b|d|e]c/;   // 匹配 "abc" "adc" "aec" "a|c";

// 以上两个正则,但凡包含后面所匹配的字符串,都可以通过验证。

// 原本 "|" 字符 在正则表达式中表示“或”运算,如需匹配该字符,则要进行转义 即"\|";

// 但在 "[]" 中,可能比较特殊吧,因为它内部已经不再需要"|"运算符了,所以即使不进行转义,它也表达了它自身原本的字符含义。

正则表达式 (Regular Expression)

概念: 记录文本规则的一串代码;在js中:


预定义类:

    .    [^\n\r]     除了换行和回车之外的任意字符

    \d   [0-9]       数字字符

    \D   [^0-9]      非数字字符

    \w   [a-zA-Z0-9]     单词字符(在js中,不包含汉字)

    \W   [^a-zA-Z0-9]    非单词字符

    \s   [\f\r\n\t\v]    不可见字符

    \S   [^\f\r\n\t\v]   非不可见字符(即可见字符)

基础语法:

    {}   里面的数字 表示前面内容出现的次数,{n}次,{n,}n到多次,{n,m}n到m次;

    +    表示前面的内容有 1 个或多个

    *    表示前面的内容有 0 个或多个

    ?    表示前面的内容有 0 个或 1 个    3?也可以写作:(3|)

    []   表示一个字符的位置

    ()   用来分组 可以提高优先级

    |    或运算符

    /^内容/    严格限制开头

    /内容$/    严格限制结尾

    /^内容&/   严格限制内容,不仅仅是开头和结尾!


查看完整回答
反对 回复 2019-03-04
  • 1 回答
  • 0 关注
  • 360 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信