1

恐怕对match用户输入字符串的 a 进行细化会导致错误,因为使用设置matchg标志且与字符串不匹配的正则表达式会返回null,这是不可细化的。

所以我剩下以下两个选项,据我所知,它们是相同的。但我只是想确保我正确理解它。

    var tldMatcher = /[^.]+\.?$/g
      , tld = str.match(tldMatcher) ? str.match(tldMatcher)[0] : null;

...和...

    var tldMatcher = /[^.]+\.?$/g
      , tld = str.match(tldMatcher) && str.match(tldMatcher)[0];

有什么想法吗?

4

1 回答 1

1

就个人而言,我总是在使用with|| []时使用。那是:.matchg

var matches = str.match(/regex/g) || [];

这确保matches将始终是一个字符串数组(但可能为空)。在您的情况下,可以这样做:

var tldMatcher = /[^.]+\.?$/g
  , tld = (str.match(tldMatcher) || [])[0];
于 2012-11-24T04:54:08.970 回答