是否需要检查正则表达式匹配长度以确定是否至少有一个匹配项

Does regex match length need to be checked to determine if at least one match?

本文关键字:是否 有一个 检查 正则表达式      更新时间:2023-09-26

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

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');

为了回答您的问题,文档中提到了它

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

所以,无需检查长度


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

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

您也可以使用测试

if(regexp.test(input))

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

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');};

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

相关文章: