gpt4 book ai didi

javascript - 用于匹配有效 JavaScript 命名空间的正则表达式

转载 作者:行者123 更新时间:2023-12-03 01:23:14 26 4
gpt4 key购买 nike

匹配正确的任意深度 JavaScript 命名空间的正则表达式是什么?

有效条目

  • 一个
  • a.b
  • $a._b.$$c.__d
  • a_$09.b_$09.c_$09

基本上,JavaScript 开放名称变量由点连接,每个单独的名称可以包含 a-zA-Z_$0-9,但不能以 0-9 开头。

无效条目

  • 1a - 不能以数字开头
  • abc.1a - 子名称也不能以数字开头
  • .a - 不能有前导点
  • a. - 不能以点结尾

我已经尝试过这个:^([a-z$_][a-z$_0-9]*\.?)*[^\.]$,它同时禁止尾随的.,末尾允许有任何多余符号,如,这是无效的。

最佳答案

使用 ^[a-zA-Z\$\_][0-9a-zA-Z\$\_]*(\.[a-zA-Z\$\_][0- 9a-zA-Z\$\_]*)*$

因为 \w 匹配任何单词字符(等于 [a-zA-Z0-9_]),

正如 @emsimpson92 所说,您可以拥有一个简化版本:

^[a-zA-Z\$\_][\$\w]*(\.[a-zA-Z\$\_][\$\w]*)*$

对于 @vitaly-t 评论的最短版本(删除了不必要的转义),它将是:

/^[a-z$_][$\w]*(\.[a-z$_][$\w]*)*$/i

Regex Online

关于javascript - 用于匹配有效 JavaScript 命名空间的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51663411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com