正則實踐——判斷一個單詞是否有重復字母

寫于2015年4月7日,最新刪改于2017年5月29日,可能已過時,請謹慎參考。

要判斷一個單詞中是否有重復字母非常容易,先用循環(huán)嘗試一次:

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);
}

匹配過程和上述循環(huán)相同,性能與循環(huán)版相當。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容