Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正确测试整数或N/A正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 正确测试整数或N/A正则表达式

Javascript 正确测试整数或N/A正则表达式,javascript,regex,Javascript,Regex,我试图测试正则表达式是整数还是N/a,但是我无法使我的函数正确执行。它总是显示错误消息 function WholeNumberWithNA(field1) { $("input:text[id*='" + field1 + "']").keyup(function () { var input = $(this); var re = /^[0-9]{1,10}\|N\/A\|n\/a|N\/a|n\/A$/; var errormsg = "Whole Number o

我试图测试正则表达式是整数还是N/a,但是我无法使我的函数正确执行。它总是显示错误消息

function WholeNumberWithNA(field1) {
$("input:text[id*='" + field1 + "']").keyup(function () {
    var input = $(this);
    var re = /^[0-9]{1,10}\|N\/A\|n\/a|N\/a|n\/A$/;
    var errormsg = "Whole Number or N/A only";
    var is_email = re.test(input.val());
    if (is_email) { input.removeClass("invalid").addClass("valid"); myFunction(event, errormsg); }
    else { input.removeClass("valid").addClass("invalid"); myFunction(event, errormsg); }
});

}

function myFunction(event, errormsg) {
    var element = $(event.currentTarget);
    var valid = element.hasClass("valid");
    var temp = event.currentTarget.parentElement;
    var error_element = $(".ValidatorIndicator", event.currentTarget.parentElement);
    if (!valid) { error_element.text(errormsg); error_free = false; }
    else { error_element.text(""); }
}

我想我意识到了我的错误。我去掉了“|”前面的反斜杠,它成功了。正确的表达式:/^[0-9]{1,10}N/A | N/A | N/A | N/A | N/A$/

使用以下正则表达式:

/^(?:\d{1,10}|n\/a)$/i

有必要使用括号进行分组,以便
^
$
不会附加到特定的备选方案。末尾的
i
修饰符使其不区分大小写,因此不必列出
n
a
的所有不同大小写组合。如果你想让它分开不同的选项,你不应该逃避它。

使用下面的regexp:

/^(?:\d{1,10}|n\/a)$/i
var re = /^(\d{1,10}|n\/a)$/i;
有必要使用括号进行分组,以便
^
$
不会附加到特定的备选方案。末尾的
i
修饰符使其不区分大小写,因此不必列出
n
a
的所有不同大小写组合。如果你想让它分开不同的选择,你不应该逃避

var re = /^(\d{1,10}|n\/a)$/i;
数字的
\d


\d
用于数字。

以防您希望允许未修剪的字符串:

var pattern = /^\s*(\d{1,10}|n\/a)\s*$/i;

console.log(pattern.test("123456"));   // true
console.log(pattern.test("0.123456")); // false
console.log(pattern.test("n/A"));      // true
console.log(pattern.test("."));        // false
console.log(pattern.test("   7  "));   // true

以防您希望允许未修剪的字符串:

var pattern = /^\s*(\d{1,10}|n\/a)\s*$/i;

console.log(pattern.test("123456"));   // true
console.log(pattern.test("0.123456")); // false
console.log(pattern.test("n/A"));      // true
console.log(pattern.test("."));        // false
console.log(pattern.test("   7  "));   // true


发布一些有效字符串和无效字符串的示例。使用
i
修饰符获得不区分大小写的匹配,而不是列出所有不同的组合。@Barmar您能举个例子吗please@ibrahimmahrir我想我找到了解决方案,请参见top@DeVonte你可以把它做得更短。请参阅下面的答案。发布一些有效字符串和无效字符串的示例。使用
i
修饰符获得不区分大小写的匹配,而不是列出所有不同的组合。@Barmar您能举个示例吗please@ibrahimmahrir我想我找到了解决方案,请参见top@DeVonte你可以把它做得更短。请看下面的答案。谢谢!这真的很有帮助!非常感谢。这真的很有帮助!
^\d{1,10}n$/a$
不正确,因为它将匹配字符串,如
1cvhy-
fvuit785^%^n/a
@WiktorStribiżew刚刚修复了它。
^\d{1,10}n\/a$
不正确,因为它将匹配字符串,如
1cvhy-
fvuit785}/wiktorsrib。我想你的目的是制作一个代码片段。了解如何做到这一点欢迎来到SO。我想你的目的是制作一个代码片段。学习如何做到这一点