使用模式验证客户端数据输入

Validating client-side data input using a pattern

提问人:user17273353 提问时间:12/24/2021 最后编辑:mplungjanuser17273353 更新时间:12/24/2021 访问量:90

问:

我目前正在做一个项目,可以通过网站将数据添加到数据库中。目前,我已经设法对其进行了配置,以便该表单接受标题,邮政编码,车辆注册号和ID号。

Javascript 验证对这些条目工作正常,但 ID 号除外。所有 ID 号都是特定格式(2 个数字后跟一个 .,后跟 4 个数字)。

我似乎无法弄清楚如何定义模式。

由于我的代码大小,我没有在这里发布完整的代码(除了这个 ID 验证之外,所有代码都在验证中),但我在下面提供了我试图想出的“if”语句的片段。

if (inputElement.id == "wid") {
    pattern = /^[a-zA-Z0-9 ]*$/;
    feedback = "Only 2 numbers followed by a . followed by 4 numbers are 
permitted";

我知道这里的模式不正确,但我已经搜索了几个小时,试图找到一些易于解释的指南,但找不到任何似乎相关的内容。

任何想法将不胜感激。

谢谢

JavaScript 验证 客户端

评论

0赞 mplungjan 12/24/2021
请访问帮助中心参观以查看什么以及如何询问。做一些研究,搜索 SO 上的相关主题;如果你遇到困难,请发布一个最小的可重复的尝试示例,注意输入和预期输出,最好是在 Stacksnippet
0赞 mplungjan 12/24/2021
你的点在哪里?你的数字在哪里?你有一个空格和字母。此外,您不会根据正则表达式测试 ID。看看 regex101.com 来测试你的代码 - 这真的是微不足道的 regex101.com/r/utkPGg/1
0赞 mplungjan 12/24/2021
请看一些例子

答:

0赞 Wessel van der Linden 12/24/2021 #1

您可以尝试类似 https://regex101.com/ 的东西来测试您的正则表达式,并查看它的解释。

我认为你的模式应该是这样的:. 第一部分 () 确保 id 以 2 位数字开头,然后是一个点(必须转义,否则它表示“每个字符”),然后是 4 位数字/^[0-9]{2}\.[0-9]{4}$/[0-9]{2}\.[0-9]{4}

评论

0赞 tromgy 12/24/2021
我认为验证必须首先检查字符串的长度以确保它是 7,然后应用正则表达式。否则,像 12.3456foo 这样的东西也会匹配
0赞 user17273353 12/24/2021
谢谢 - 经过一些调整后,这对我有用!从未听说过正则表达式,非常有用的资源 - 再次感谢!