微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

    }

}

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐