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

    }

}

 

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...