比这更好的正则表达式方法


better approach regex than this

>我将输入限制为仅接受以下字符:

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

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

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

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

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

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

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

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

据我所知,没有真正的值规则顺序这样的东西。只是为自己编造一些东西,并在所有表达中保持一致。只需使用任何感觉舒适的东西。