如何验证输入长度,但忽略alphas?

时间:2011-11-22 15:24:17

标签: javascript regex

我的输入将输入3-5个字母数字字符。

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

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

但是,我想忽略表单提交上的任何字母字符,而不是删除它们。

因此,"RS032"的输入值在表单提交的输入中保持这种方式,但表单实际上只返回{​​{1}}

1 个答案:

答案 0 :(得分:3)

这个问题有点害羞,但我猜你要验证字母以外的所有内容。因此,如果输入为abc1d2e3fgh且您的要求为3位数,则需要通过。

对于像这样的非常基本的要求,您可以在其他所需字符之间插入可选的[A-Za-z]*?集。因此,对于3号码要求,您可以使用

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

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

如果您需要使用匹配/捕获组,而不仅仅是验证匹配/不匹配,这将无效。

除非你有一个非常基本的要求,否则我无法通过一个RegEx实现这一目标。您可能需要将字符串分配给另一个变量,删除字母,然后验证。通过分配给另一个变量,您可以保留输入。


响应问题编辑的更新:

听起来你想要剥离字母,只有你想在后端做。我认为这正是你应该做的,而不是将其与验证混为一谈。

如果您真的想要在客户端进行工作,可以使用一个额外的隐藏字段,当“源”文本发生更改时,您可以通过Javascript进行更新。在服务器上,您可以忽略“source”字段,而是使用“stripped”字段。