1

今天我收到老板发来的一封电子邮件,说要更改进入我们客户网站的 java 脚本代码中的正则表达式

[a-zA-Z0-9]+[a-zA-Z0-9_\.\-]

[a-zA-Z0-9]+[a-zA-Z0-9_\-\.]

因为我们的一位客户抱怨这不是正则表达式的最佳实践,这会导致他们的 CMS 和数据库出现问题。

看看这两个正则表达式,在我看来它们匹配完全相同的东西。

这 。和 - 最后交换,但这不应该有所作为。应该是?

我错过了什么吗?

我们客户公司的开发人员非常坚持我们要改变它。

有人可以阐明一下吗?

谢谢!

4

2 回答 2

3

没有功能上的区别。

如果该正则表达式有任何问题,那么它是一个非标准/错误的实现。我建议找出问题所在。

虽然我认为没有理由改变它,但我认为没有理由改变它,所以按照你的意愿去做。

提示:我猜正则表达式写错了。如果我知道它应该是什么意思,我会写它:

[a-zA-Z0-9]+[_\.\-]?
于 2012-04-26T23:51:55.090 回答
2

如果您-在字符组中使用 a ,它会排在最后,否则它表示一个字符范围,例如A-Z. 如果你像你一样逃避它,那么它可以在任何地方。

-他们使用的 CMS 或其他代码可能会取消转义正则表达式,因此在这种情况下,如果不是组中的最后一个字符,它将引发错误。我想说的是,正则表达式中的转义字符越少越好,但这是从个人角度来看的。

于 2012-04-26T23:39:35.103 回答