【发布时间】:2014-04-02 04:14:30
【问题描述】:
请看,在我的 Ruby on Rails 应用程序中,Regex 表达式被用于使用 jQuery 验证引擎完成的验证。所以,我需要一个自定义要求的正则表达式,
我的要求:
它应该只包含字母、数字、特殊字符
#, _, -, (, ), ., *和空格。应该以字母或数字或特殊字符开头
#OR*应该以字母或数字或特殊字符结尾
.或)不应允许连续的特殊字符
它应该检查任何开始的括号'(',有一个结束括号')'
应将整个字符长度限制为 25
我在rubular.com中尝试了以下表达式:
/^([a-zA-Z]|\d|\#|\*)(([a-zA-Z]*\d*\(?\)?\-?\.?)*)([a-zA-Z]|\d|\)|\.)$/
但是,对于上面的表达式,
它将允许'*)', '()','*.' 等组合。它应该在特殊字符之间至少有一个字符或数字。此外,现在即使我们输入')',它也不会检查起始括号'('。所以,这些就是问题所在。
谁能帮帮我。
【问题讨论】:
-
@sawa: "?',?[]}{=-)(*&^%$#`~{}" 这些是特殊字符,我已经给出了所有 sp。我想允许的字符。希望你清楚。
-
“有问题”是什么意思?什么具体不起作用?你能举出反例,在不应该通过的地方通过,或者在应该正确的地方失败吗?没有它,这是一个懒惰的问题,将大量工作倾倒给其他人。你应该让你的问题尽可能容易理解和回答。见这里:stackoverflow.com/help/how-to-ask
-
@Amadan:我已经解释了这些问题。请检查
-
是否可以进行多个测试和正则表达式?如果您不尝试将所有需求压缩到一个复杂的正则表达式中,这个问题会容易得多。例如,
/\A.{1,25}\z/应用长度限制,但没有其他限制。 -
@RajeshCO:我认为你可以很容易地组合项目 1..3,但其余的独立得多。
标签: jquery ruby-on-rails ruby regex