vue項(xiàng)目中需要匹配到淘寶分享出來(lái)的鏈接就寫(xiě)了個(gè)方法處理一下

一個(gè)淘寶鏈接我是拿一個(gè)關(guān)鍵詞,程序中的,去匹配這個(gè)鏈接中是否有這個(gè)關(guān)鍵詞,然后再去看是否這個(gè)詞的前后時(shí)候存在一些特殊的字符下面先貼方法
 /**
     * [myRegExp description]
     *
     * @param   {[type]}  str  進(jìn)店關(guān)鍵詞     [str description]
     * @param   {[type]}  matchStr 粘貼進(jìn)來(lái)的關(guān)鍵詞 [matchStr description]
     * @param   {[type]}  isMatch 是否開(kāi)啟關(guān)鍵字匹配  [isMatch description]
     *
     * @return  {[type]}     返回值控制是否放行下一個(gè)輸入框      [return description]
     */
    function myRegExp(str, matchStr, isMatch) {
        // 這個(gè)方法用來(lái)判斷到底 被匹配的文字之前的包含了什么之后包含了什么
        // str 進(jìn)店關(guān)鍵詞  matchStr 被匹配的字符串 就是你粘貼的東西
        if (!(matchStr && str)) return false;
        var containSpecial = RegExp(
            /[(\ )(\~)(\【)(\】)(\,)(\;)(\a-zA-Z)(\¥)(\!)(\@)(\#) (\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=) (\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/) (\<)(\>)(\?)(\)]+/
            );
        if (isMatch) {
            // 粘貼的內(nèi)容需要匹配關(guān)鍵詞
            let res = RegExp(str)
            if (!matchStr.match(res)) return false;
            // 這個(gè)判斷很有必要 要是條件沒(méi)有匹配到就是null 所以下邊的操作就會(huì)出錯(cuò)
            // 獲取到字符在這里邊存在的起始索引 
            let startIndex = matchStr.match(res).index;
            // 關(guān)鍵詞的長(zhǎng)度,用來(lái)計(jì)算關(guān)鍵詞之后的長(zhǎng)度
            let len = str.length;
            // 匹配到的前半部分
            let start = matchStr.substring(0, startIndex)
            // 匹配到的后半部分
            let back = matchStr.substring(startIndex + len)
            if (containSpecial.test(start) && containSpecial.test(back)) {
                // 前后都包含特殊字符
                return true;
            } else {
                return false;
            }
        } else {
            // 粘貼的內(nèi)容不需要匹配關(guān)鍵詞但是要匹配是否含有一些特殊字符
            if (containSpecial.test(matchStr)) {
                // 證明存在關(guān)鍵詞
                return true;
            } else {
                return false;
            }
        }
    }
    let val = 'kkkkk【你好,笑呵呵5555.'
    let str = '你好,笑呵呵'
    console.log(myRegExp(str, val,true))

上邊的注釋已經(jīng)很詳盡了,應(yīng)該不會(huì)有什么難點(diǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容