前端笔记

正则实践——判断一个单词是否有重复字母

2017-06-23  本文已影响0人  周骅

写于2015年4月7日,最新删改于2017年5月29日,可能已过时,请谨慎参考。

要判断一个单词中是否有重复字母非常容易,先用循环尝试一次:

function isIsogram(str) {
    str = str.toLowerCase();
    for (let i = 0; i < str.length - 1; i++) {
        if (str.indexOf(str.charAt(i), i + 1) >= 0) {
            return false;
        }
    }
    return true;
}

这个方法是从左向右检查字符,尝试找出最近的一个相同字符。

换个思路,用正则来处理这个问题将无比简洁:

function isIsogram2(str) {
    return !/(.).*?\1/i.test(str);
}

匹配过程和上述循环相同,性能与循环版相当。

上一篇 下一篇

猜你喜欢

热点阅读