能否生成与正则表达式字符串匹配的字符串?

6

能否显示与正则表达式匹配的字符串?

例如:

使用表达式/^AD\d{3}/,并显示AD999

我要做的是验证一个相当简单的字符串,它可能包含所有数字,也可能包含一些字符和“-”。 我在提交表单时对邮政编码进行验证,以针对使用邮政编码的所有国家的数据库。

如果需要,我可以在JavaScript或PHP中执行此操作。


6
通常情况下,有许多字符串可以与正则表达式匹配——至少对于任何有用的正则表达式来说是这样。您想使用什么标准来决定应显示哪些匹配字符串? - Philip Kendall
你如何判断 /^AD\d{3}/ 是 AD999 而不是 AD001? - ceejayoz
他只是想展示一个有效输入的例子。 - Madara's Ghost
2
你会为\d{5,8}([c-fF-M]+.)?插入什么?你想要显示的几乎肯定取决于比正则表达式本身更大的上下文。 - Philip Kendall
[^\s\S] - 这将失败 :) 不过这是一个好问题。我希望能有像那样的系统。 - alex
显示剩余4条评论
4个回答

4

1
这个完美地运作了,我认为应该是最佳答案,非常感谢。 - Carlton

4

不,这种功能不可用。

你可以尝试自己实现它,但我认为这不是你的解决方案。只需正常编写消息即可,不必总是使用动态方式。

不过,我喜欢你的思维方式。


我只是想如果我能反转它,就可以避免在数据库中再添加另一个字段。 - Rodney
为什么在数据库中有另一个字段会成为问题? - Philip Kendall
没问题,只是当我建立的数据库包含使用邮政编码的世界上每个国家时,需要大量工作。 - Rodney
2
@Philip,你生成的信息越多,在需要重构时就需要更改的内容就越少。 - Madara's Ghost

4

链接已经失效,但请查看下面Pepijn的答案,其中有一个非常好的JavaScript实现。 - Carlton

2

我从你的附加评论中更好地理解了你的问题。

由于你的数据只涉及邮政编码,我建议可以采用另一种方法,并在数据库中存储一个图片,并自动生成正则表达式。

例如,英国邮政编码看起来像AA?99? 9AA | AA?9A 9AA,这很容易使用正则表达式进行转换。


更一般地说,你可以拥有一个领域特定语言,从中生成示例和正则表达式。顺带提一下,SAN 1TA是一个有效的英国邮政编码,用于孩子们写信给圣诞老人,还有其他一些奇怪的例子。是否想在表单上接受这些内容是一个不同的问题。 - Philip Kendall
1
小心 - 这是 SAN TA1。你不想让这些字母走失! - Borodin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接