美文网首页前端笔记
正则实践——判断一个单词是否有重复字母

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

作者: 周骅 | 来源:发表于2017-06-23 15:50 被阅读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);
    }
    

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

    相关文章

      网友评论

        本文标题:正则实践——判断一个单词是否有重复字母

        本文链接:https://www.haomeiwen.com/subject/wnpccxtx.html