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

时间:2012-06-15 01:50:04

标签: php javascript regex

我限制我的输入只接受这个字符:

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

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

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

我是否违反了任何正规化顺序?我只想根据我在上面的子弹上说明的顺序获得正则表达式的顺序。

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

据我所知,没有正常的价值观。只需为自己制作一些东西,并使其与所有表达方式保持一致。只要使用任何舒适的东西。