【问题标题】:better approach regex than this比这更好的方法正则表达式
【发布时间】:2012-06-15 01:50:04
【问题描述】:

我将我的输入限制为只接受这些字符:

  • 撇号'
  • 开括号(
  • 右括号)
  • 逗号,
  • 连字符 -
  • 期间.
  • 字母数字 A-Z a-z 0-9
  • 空间

我想出了这个正则表达式:

/^['(),-.A-Za-z0-9\s]+$/

我在这里违反了任何正则化命令吗?我只想根据我在上面的项目符号中说明的顺序来获得正则表达式的顺序。

【问题讨论】:

  • 改用/^['(),-.\w\s]+$/

标签: php javascript regex


【解决方案1】:

在@Mark Linus 的问题评论中调整正则表达式:

/^[-'(),.\w\s]+$/ (将连字符移到字符类的开头)

原因:在正则表达式字符类中,- 指定一个字符范围,除非它是第一个或最后一个字符。

,-. 表示从 ,. 的任何字符。碰巧的是,- 是这两者之间的单个字符(基于 ASCII 值),所以在这种情况下它的结果是一样的。但是,在字符类中除了开头或结尾之外的任何位置都放置连字符可能不是一个好主意,除非您要指定范围。

【讨论】:

    【解决方案2】:

    据我所知,没有真正意义上的值的常规顺序。只需为自己编造一些东西,并在所有表达中保持一致。随便用什么感觉舒服就好。

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 2023-03-27
      • 1970-01-01
      • 2011-06-22
      • 2015-11-29
      • 2015-06-05
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      相关资源
      最近更新 更多