当前位置: 首页 > 知识库问答 >
问题:

javascript - 这两个正则有啥区别,为什么第一个会匹配到 @ 和 = ,而将 \\ 后置后则正常?

昝欣可
2023-12-15

这两个正则有啥区别,为什么第一个会匹配到 @ 和 = ,而将 \ 后置后则正常?

/^[\u4e00-\u9fa5a-zA-Z0-9,-\\/ :、\.]{0,50}$/.test("@") // 为什么为true?/^[\u4e00-\u9fa5a-zA-Z0-9,-/ :、\.\\]{0,50}$/.test("@") // 正常

共有3个答案

邵子平
2023-12-15

image.png
image.png
image.png
image.png
[]中匹配-字符,需要把-进行转义或把-放到最后

孔飞翔
2023-12-15

你这个发出来的应该经过转义了,不是原本的正则吧,用我看到的上面是false,下面报错
image.png

不过可以猜到,主要原因在于-是字符范围,比如0-9表示01234567899个数,a-z表示abcd....z。他们在匹配的时候是根据字符在ASCII码中的大小进行匹配的,比如'@'.charCodeAt()是64,','.charCodeAt()是44,'/'.charCodeAt()是47,64不在44到47内,就匹配不上
image.png

郝杰
2023-12-15

image.png
根据提供的正则, 第一个是false, 第二个会报错

 类似资料:
  • 我试图使用正则表达式来检查字符串中的第一个和最后一个字符是否是a-z之间的字母字符。 我知道这与第一个字符匹配: 但是我如何检查最后一个字符呢? 这: 不起作用。我怀疑这两个条款之间应该有什么区别,但我不知道是什么!

  • 测试是可以匹配这些,但是具体 $ 在这的用处没看懂!^! 请问有大佬知道不?

  • 问题内容: Python和JavaScript正则表达式语法是否相同? 如果不是,则: 它们之间的重要区别是什么 是否有一个“实现” JavaScript正则表达式的python库? 问题答案: 这里有一个比较表: 正则表达式风味比较

  • 所以我想用正则表达式匹配第一个数字和最后四个数字。 我可以使用获取最后4个数字,但无法将第一个和最后四个数字合并在一起。尝试了多种组合。

  • 给定下面的字符串 [NeMo(PROD)]10.10.100.100(EFA-B-3)[博科FC-Switch]传感器:电源#1(SNMP自定义表)关闭(无此名称(SNMP错误#2)) 我尝试获取多个匹配项以提取以下值: 因为我是正则表达式的初学者,所以我试图定义一些“规则”: 提取第一个圆括号内的第一个值,例如PROD 提取第一个闭合方括号和第二个开口圆括号之间的值,例如10.10.100.10

  • 正则表达式如何匹配出这个字符串'calc(100vh - 420px)'中的数字420