我担心对用户输入字符串的匹配
进行细化会导致错误,因为与具有的正则表达式进行
标志设置且与字符串不匹配将返回 匹配
gnull
,这是不可精炼的。
所以我只剩下以下两个选项,据我所知,它们是相同的。但我只是想确保我正确理解它。
var tldMatcher = /[^.]+\.?$/g
, tld = str.match(tldMatcher) ? str.match(tldMatcher)[0] : null;
...还有...
var tldMatcher = /[^.]+\.?$/g
, tld = str.match(tldMatcher) && str.match(tldMatcher)[0];
有什么想法吗?
最佳答案
我个人总是使用|| []
当我将 .match
与 g
一起使用时。即:
var matches = str.match(/regex/g) || [];
这确保matches
始终是字符串数组(但可能为空)。在你的情况下,可以这样做:
var tldMatcher = /[^.]+\.?$/g
, tld = (str.match(tldMatcher) || [])[0];
关于javascript - 这两者是否相同,或者其中一个比另一个更好/更安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13538334/