vue项目中需要匹配到淘宝分享出来的链接就写了个方法处理一下

一个淘宝链接我是拿一个关键词,程序中的,去匹配这个链接中是否有这个关键词,然后再去看是否这个词的前后时候存在一些特殊的字符下面先贴方法
 /**
     * [myRegExp description]
     *
     * @param   {[type]}  str  进店关键词     [str description]
     * @param   {[type]}  matchStr 粘贴进来的关键词 [matchStr description]
     * @param   {[type]}  isMatch 是否开启关键字匹配  [isMatch description]
     *
     * @return  {[type]}     返回值控制是否放行下一个输入框      [return description]
     */
    function myRegExp(str, matchStr, isMatch) {
        // 这个方法用来判断到底 被匹配的文字之前的包含了什么之后包含了什么
        // str 进店关键词  matchStr 被匹配的字符串 就是你粘贴的东西
        if (!(matchStr && str)) return false;
        var containSpecial = RegExp(
            /[(\ )(\~)(\【)(\】)(\,)(\;)(\a-zA-Z)(\¥)(\!)(\@)(\#) (\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=) (\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/) (\<)(\>)(\?)(\)]+/
            );
        if (isMatch) {
            // 粘贴的内容需要匹配关键词
            let res = RegExp(str)
            if (!matchStr.match(res)) return false;
            // 这个判断很有必要 要是条件没有匹配到就是null 所以下边的操作就会出错
            // 获取到字符在这里边存在的起始索引 
            let startIndex = matchStr.match(res).index;
            // 关键词的长度,用来计算关键词之后的长度
            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 {
            // 粘贴的内容不需要匹配关键词但是要匹配是否含有一些特殊字符
            if (containSpecial.test(matchStr)) {
                // 证明存在关键词
                return true;
            } else {
                return false;
            }
        }
    }
    let val = 'kkkkk【你好,笑呵呵5555.'
    let str = '你好,笑呵呵'
    console.log(myRegExp(str, val,true))

上边的注释已经很详尽了,应该不会有什么难点

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 9,804评论 0 13
  • 感觉自己有点神经衰弱,总是觉得手机响了;屋外有人走过;每次妈妈不声不响的进房间突然跟我说话,我都会被吓得半死!一整...
    章鱼的拥抱阅读 6,637评论 4 5
  • 夜莺2517阅读 127,829评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 11,866评论 1 6

友情链接更多精彩内容