我如何验证输入长度,但忽略alpha



我有一个输入,可以输入3-5个字母数字字符。

我想验证用户输入在3-5个字符之间:

/^[A-Za-z0-9]{3,5}$/

但是,我想在表单提交时忽略所有的alpha字符,而不是去掉它们。

所以在表单提交时,"RS032"的输入值保持不变,但是表单实际上只返回"032"

这个问题有点缺乏细节,但我猜您想验证字段中的所有内容,除了字母。因此,如果输入是abc1d2e3fgh,而您的要求是3位数字,您希望它通过。

对于这样一个非常基本的需求,您可以将可选的[A-Za-z]*?集散布在其他必需的字符之间。因此,对于3个数字的要求,您可以使用

[A-Za-z]*?d[A-Za-z]*?d[A-Za-z]*?d[A-Za-z]*?

这需要3位数字(d),并且允许在这些数字之前,之间或之后的任意数量的字母。

如果你需要使用match/capture组,而不是仅仅验证match/no-match,这将不起作用。

除非你有一个非常基本的需求,否则我知道没有办法用一个RegEx来实现这一点。您可能需要将字符串赋值给另一个变量,去掉字母,然后进行验证。通过赋值给另一个变量,您可以保留输入。


回复问题编辑:

听起来像你do想要删除字母,只有你想在后端做。我认为这正是你应该做的,而不是把它和验证混淆在一起。

如果你真的想在客户端工作,你可以使用一个额外的,隐藏的字段,你可以通过Javascript更新,当"source"文本的变化。在服务器上,您可以忽略"源"。字段,并使用" striped "一。

最新更新