1

如果我只关心是否至少有一个匹配项,是否有任何理由检查返回数组的长度,或者只是检查返回值是否不够 null?

javascript正则表达式匹配

var str = "The rain in SPAIN stays mainly in the plain";
var n = str.match(/ain/g);
if(n && n.length > 0) {alert('at least one match');
// Or
if(n) {alert('at least one match');
4

2 回答 2

1

要回答您的问题,它在文档中提到

带有 g 标志,如果没有匹配,该方法返回 null

所以,不需要检查长度


您可以改为使用接受正则表达式作为参数并返回位置的搜索

if(str.search(/ain/)==-1);//not found
else ;//found

你也可以使用测试

if(regexp.test(input))
于 2013-10-26T15:03:07.137 回答
0

如果未找到匹配项(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match),则返回 null,因此,

if(n) {alert('at least one match');

足够了。

你可以实际测试一下,

var str = "The rain in SPAIN stays mainly in the plain";
var n = str.match(/ainyyyy/g);
if(n) {console.log('at least one match')}else{console.log('not found');};

在此示例中未找到将被打印。

于 2013-10-26T15:07:31.237 回答