我们正在开发一个表单验证代码片段,其中使用了 jQuery 屏蔽插件来强制验证用户输入。
与邮政编码字段一起使用的掩码模式是 99999?-9999,其中“?”之后的所有内容都是可选的。
当用户使用 chrome 中的自动填充功能填写表单时出现问题 [即双击输入字段并选择值]并提交表单。提交表单时,邮政编码值为 23455-____,其中包括屏蔽模式字符,即连字符和下划线。
使用自动填充功能后,请参阅随附的屏幕截图。 http://inft.ly/3mmtNdA
如果可选字符包含连字符 (-) 和下划线 (_),则需要在将其提交到服务器之前将其删除。我正在尝试使用正则表达式,但没有找到任何在第 5 个索引项之后检查特定字符然后删除这些字符的内容。
任何帮助都会很有帮助。
最佳答案
由于前五个字符是数字,因此您可以在捕获组中捕获它们。检查那些后面是否有 (-) 或 (_) 并替换它们。
您可以使用以下正则表达式执行此操作:
str.replace(/(\d{5})[\-_](.*)/, '$1$2');
首先您创建一个捕获组来保存前五位数字(\d{5})
。然后寻找要删除的字符[\-_]
。之后,您捕获字符串的其余部分 (.*)
。
现在您可以用捕获组 '$1$2'
替换您的字符串,您就完成了。
关于javascript - 删除第 n 个索引值后的某些字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30865278/