这看起来很简单,但它不起作用。我正在尝试匹配整数或单词“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;
答案 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)