正则表达式匹配整数或单词“其他”,不区分大小写

时间:2015-02-18 18:29:58

标签: javascript regex

这看起来很简单,但它不起作用。我正在尝试匹配整数或单词“Other”(不区分大小写)。例如,给定数组:

[1, 233, 45, "other", "the"]

只有数组中的前4项才有效。但是,目前我的尝试只会匹配整数而不是捕获“其他”(不管不区分大小写)。

这是我正在使用的模式和修饰符:

var regex = new RegExp("^[0-9]*|(other)$", "i"),
    match = regex.exec(value);

return match && (match.index === 0) && match[0].length === value.length;

3 个答案:

答案 0 :(得分:3)

这个想法很好,但需要修改一些细节:

var regex = /^(\d+|other)$/i;

答案 1 :(得分:2)

并不是它捕获整数,而是捕获[0-9] *。 *表示ZERO或更多,因此空字符串有效。其中的A +表示一个或多个。

这可能比你需要的更通用,但数字通常不以0开头,除了0本身,但如果你不介意允许前导0,[0-9] +会这样做。如果你不想匹配像001这样的数字,那么你需要像0 | [1-9] [0-9] *。

此外,^和$的优先级高于|,这意味着您实际上匹配以空字符串开头的任何内容,或以“其他”结尾的任何内容

答案 2 :(得分:1)

^(?:[0-9]+|other)$

试试这个。看看演示。

https://regex101.com/r/mS3tQ7/4