2017-02-15 71 views
1

这是我的问题:的Javascript正则表达式不敏感

我尽量让特定的正则表达式验证模式场在Salesforce。这个想法是创建一些东西来帮助人们以常规的形式填充文本框。

这里是规格

  1. 授权字符:其不接受[a-z0-9/?:(),'.+ -]
  2. 单词:discountwww也如果另一个含有discountwww必须不喜欢被接受:helldiscount =>不接受
  3. 整个正则表达式必须是不敏感
  4. 未经授权的规格:.xxx(点与下一个3个字母)和.xx(点与下一个2个字母)

这里是正则表达式而不说明书不灵敏规格

^(?!discount|www)([a-zA-Z0-9/?:(),.'+ -]+)$ 

我致力于将这种正则表达式不敏感并试图添加细节,但我的工作实际上不起作用;这里是工作:

(?i)^(?!(?:discount|www)$)([a-z0-9/?:(),'.+ -]+)$ 

我想念什么,我不明白它是什么。

帮助将不胜感激,谢谢!

+0

你忘了逃跑/ – Rikin

+0

@Rikin这是没有必要!它在集合里面! –

+0

regex101给我错误,尽管它在集合内。我想这一切都取决于你试图使用的库,它可能包含或不包含转义。 – Rikin

回答

0

如果discountwww不是在字符串的开头你正在测试,你必须在字符串中无处不测试:

^(?i)(?!.*discount|.*www)([a-zA-Z0-9/?:(),.'+ -]+)$ 
//  ^^   ^^ 
+0

这是为PHP工作,但不是Javascript。 –

0

我不知道销售人员,但在Javascript这将是最简单的如果你测试,如果下面的正则表达式不比赛:

(discount|www|[^a-z0-9/?:(),.'+ -]) 
+0

就在这里,你匹配'折扣'和'www'的目标是匹配除了那些 –

+0

是的任何其他字或字符,我否定了字符组。因此,您只需查看正则表达式是否不匹配。像if(!texttovalidate.match(/(discount|www|[^a-z0-9/?:((,,'++)]/i))alert('验证失败!') );'' – ohteam