我有一个输入,可以输入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 "一。