swift检测字符串是否在数组字符串中

https://www.jianshu.com/p/56da83a4e0ab  

 

/// 检测到敏感词标红

    private func richTextInputChange(text: NSMutableAttributedString,word: String) -> NSMutableAttributedString {

        let range = (text.string as NSString).range(of: word)

        return applyRichTextInputChange(text: text, word: word, range: range, last: range)

    }

    

    private func applyRichTextInputChange(text: NSMutableAttributedString,word: String,range: NSRange,last: NSRange) -> NSMutableAttributedString {

        if range.location != NSNotFound {

            text.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.State.fail, range: range)

            text.addAttribute(NSAttributedString.Key.font, value: 15.yp_font, range: range)

            let start = last.location + last.length

            let end = text.string.count+1 - start

            let stringRange = NSRange(location: start, length: end)

            let newString = text.string as NSString

            let newRange = newString.range(of: word, options: [], range: stringRange)

            let _ = applyRichTextInputChange(text: text, word: word, range: newRange, last: range)

        }

        return text

    }

 

 

第二种方法

extension YPFastRecruitHeaderView {

    /// 检查是否包含敏感词

    func contentHasSensitiveWord(textString: String){

        let words = YPFastIssueCofigWordModel.shared?.thesaurusList ?? []

        if let _ = words.first(where: {textString.contains($0)}) {

            contentHasSensitive.accept(true)

        }else{

            contentHasSensitive.accept(false)

        }

    }

    

    /// 检测到敏感词标红

    func richTextInputChange(text: NSMutableAttributedString,word: String) -> NSMutableAttributedString {

        return textRegex(pattern: word, attributeString: text, color: UIColor.State.fail)

    }

        

    // 1.匹配纯文本

    func textRegex(pattern: String,

                   attributeString: NSMutableAttributedString,

                   color: UIColor) -> NSMutableAttributedString{

        

        //富文本contentAttributeString

        let content = attributeString.string

        do {

            // 1.1.定义规则

            //let pattern = "ben"

            // 1.2.创建正则表达式对象

            let regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.caseInsensitive)

            // 1.3.开始匹配

            let res = regex.matches(in: content, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, content.count))

            

            for checkingRes in res{

                //设置字体颜色

                attributeString.addAttribute(NSAttributedString.Key.foregroundColor, value: color,range: checkingRes.range)

            }

            return attributeString

            

        } catch {

            

            print(error)

        }

        return attributeString

    }

}

 

posted @ 2022-01-12 15:54  super1250  阅读(189)  评论(0编辑  收藏  举报