今天我收到了一封来自我老板的电子邮件,说要更改我们的客户网站上的java脚本代码中的正则表达式
[a-zA-Z0-9]+[a-zA-Z0-9_\.\-]
到
[a-zA-Z0-9]+[a-zA-Z0-9_\-\.]
因为我们的一位客户抱怨说这不是正则表达式的最佳做法,而且会导致他们的CMS及其数据库出现问题。
看看这两个正则表达式,在我看来它们完全相同。
。和 - 在最后交换,但这不应该有所作为。应该吗?
我错过了什么吗?
我们客户公司的开发人员非常坚定地要求我们改变它。
有人可以解释一下吗?
谢谢!
答案 0 :(得分:3)
没有功能差异。
如果有任何问题与正则表达式有关,那么它是一个非标准/错误的实现。我建议确切地找出问题所在。
虽然我认为没有理由改变它,但我认为不没有理由改变它,所以做你想做的事。
提示:我猜测正则表达式写错了。如果我知道它应该是什么意思,我会写下来:
[a-zA-Z0-9]+[_\.\-]?
答案 1 :(得分:2)
如果您在字符组中使用-
,则它会持续使用,否则它表示一系列字符,例如A-Z
。如果你像你一样逃避它,那么它可以在任何地方。
他们使用的CMS或其他代码可能会取消正则表达式,因此在这种情况下,如果-
不是组中的最后一个字符,则会抛出错误。我会说,尽可能少的正则表达式中的转义字符使其更容易阅读,但这是从个人的角度来看。