【发布时间】: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