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 @   super1250  阅读(196)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示