0
恐怕对用户输入字符串的match
进行细化将导致错误,因为match
与g
标志设置的正则表达式不匹配字符串将返回null
,这是不可定义的。这两个是相同的,还是比另一个更好/更安全?
所以我留下了以下两个选项,据我所知,它们是相同的。但我只想确保我正确理解它。
var tldMatcher = /[^.]+\.?$/g
, tld = str.match(tldMatcher) ? str.match(tldMatcher)[0] : null;
......还有......
var tldMatcher = /[^.]+\.?$/g
, tld = str.match(tldMatcher) && str.match(tldMatcher)[0];
有什么想法?
*更好*是主观的。就个人而言,我不喜欢任何一个,像'var tld = null,matches = str.match(tldMatcher);如果(匹配)tld = matches [0]'会更好。 –
不要调用'match'两次。调用一次,存储结果,如果不是null,则提取您感兴趣的元素。 – Lee