【问题标题】:Validation to check if the user has entered the correct format验证以检查用户是否输入了正确的格式
【发布时间】:2020-12-28 10:10:48
【问题描述】:

我有一个动态网格,其中有一个数字字段,我在其中应用了屏蔽。它还有一个加号按钮,意味着用户可以根据需要添加许多行。屏蔽是这样应用的:

<input  type='textbox' placeholder='00000-00-000' data-mask='00000-00-000' 

当用户输入 10 位数字时应用此屏蔽,但它也允许用户输入 2 或 3 位数字。为此,我尝试在保存时应用验证,以便检查输入的值是否与所需格式匹配。

到目前为止我所做的是:

  value = $(this).find('td:eq(1)').find('input').val();  //saves the entered value in a variable value
               
                myRegExp = new RegExp(/\d{5}-\d{2}-\d{3}/);
               
                if (!myRegExp.test(value)) {
                    valid = false;
                }
                else
                    valid = true;

用户输入的值保存在名为 value 的变量中,然后我定义了我的正则表达式以将我的值与该表达式匹配,但不知何故,这个正则表达式不起作用。这是定义正则表达式的正确方法吗?我在这里想念什么?我要求的格式是 00000-00-000。任何帮助将不胜感激。

【问题讨论】:

  • 您的正则表达式是正确的。你可能想输出console.log( $(this).find('td:eq(1)').find('input').val());
  • 我在我的值和正则表达式返回的正则表达式上添加了警报 /\d{5}-\d{2}-\d{3}/ 所以当它与输入的值匹配时总是去有效的真实意味着输入的格式不正确。为什么会这样? @格雷格
  • 我的正则表达式在这里工作:jsfiddle.net/t80h5oy1。当值匹配正则表达式时,返回true,否则返回false
  • @Greg console.log 的目的是什么?我应该在我的代码中哪里使用它?
  • 您需要做的就是单击run 按钮(左上角)。控制台日志位于右下角。它应该显示真假。如果您更改 00000-00-000 并单击运行,您应该会看到输出。

标签: javascript jquery asp.net


【解决方案1】:

您的逻辑是正确的,但您没有定义终点,这就是它允许插入更多值的原因。

在您的正则表达式中,它只检查 10 位数字是否按特定顺序

试试这个

myRegExp = new RegExp(/^\d{5}-\d{2}-\d{3}$/);

【讨论】:

  • 如果满足您的要求,请采纳答案
猜你喜欢
  • 2021-01-13
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 2015-07-28
  • 2019-03-09
  • 2019-12-05
  • 2011-01-27
  • 1970-01-01
相关资源
最近更新 更多