我的输入将输入3-5个字母数字字符。
我想验证用户输入3-5个字符:
/^[A-Za-z0-9]{3,5}$/
但是,我想忽略表单提交上的任何字母字符,而不是删除它们。
因此,"RS032"
的输入值在表单提交的输入中保持这种方式,但表单实际上只返回{{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”字段。