Swift输入框过滤表情
Swift输入框过滤表情
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {var isText = trueif text.containsEmoji {if String.isInputRuleNotBlank(str: text) {isText = true} else {isText = false}}return isText}extension String {// 是否包含表情var containsEmoji: Bool {for scalar in unicodeScalars {switch scalar.value {case0x00A0...0x00AF,0x2030...0x204F,0x2120...0x213F,0x2190...0x21AF,0x2310...0x329F,0x1F000...0x1F9CF:return truedefault:continue}}return false}/*** 字母、数字、中文正则判断(不包括空格)*注意: 因为考虑到输入习惯,许多人习惯使用九宫格,这里在正常选择全键盘输入错误的时候,进行九宫格判断,九宫格对应的是下面➋➌➍➎➏➐➑➒的字符*/static func isInputRuleNotBlank(str:String) -> Bool {let pattern = "^[a-zA-Z\\u4E00-\\u9FA5\\d]*$"let pred = NSPredicate(format: "SELF MATCHES %@", pattern)let isMatch = pred.evaluate(with: str)if !isMatch {let other = "➋➌➍➎➏➐➑➒"let len = str.characters.countfor i in 0..<len {let tmpStr = str as NSStringlet tmpOther = other as NSStringlet c = tmpStr.character(at: i)if !((isalpha(Int32(c))) > 0 || (isalnum(Int32(c))) > 0 || ((Int(c) == "_".hashValue)) || (Int(c) == "-".hashValue) || ((c >= 0x4e00 && c <= 0x9fa6)) || (tmpOther.range(of: str).location != NSNotFound)) {return false}return true}}return isMatch}// MARK: 过滤字符串中的特殊字符public func stringReplacingOccurrencesOfString() {let str: NSString = self as NSStringlet charactersInString = "[]{}(#%-*+=_)\\|~(<>$%^&*)_+ "let doNotWant = CharacterSet.init(charactersIn: charactersInString)let componentsArrays = str.components(separatedBy: doNotWant)let hmutStr = componentsArrays.joined(separator: "")print("humStr is:\(hmutStr)")}}
Swift输入框过滤表情相关推荐
- ios 表情符号 键盘_iOS输入框过滤表情,处理自带键盘无法输入
本片分两部分 1.使用正则表达式过滤表情 2.处理苹果自带键盘无法输入汉字问题 先记录下,后面完善: override func viewDidAppear(_ animated: Bool) { s ...
- 输入框过滤表情和颜文字
参考:https://blog.csdn.net/qq_35644925/article/details/113591221 InputFilter emojiFilter = new InputFi ...
- 移动端输入框过滤表情
changeEmoji() {var patt=/[\uD800-\uDBFF][\uDC00-\uDFFF]/gthis.userMsg.nickname = this.userMsg.nickna ...
- 【Python】过滤表情字符
import re def filter_emoji(desstr, restr=''):# 过滤表情res = re.compile(u'[\U00010000-\U0010ffff\\uD800- ...
- java 微信昵称过滤表情
package com.ict.compent.wx;import java.util.regex.Matcher; import java.util.regex.Pattern;/*** 微信过滤表 ...
- java后台过滤特殊表情_java过滤表情图标
package com.yt.util; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apac ...
- java后台过滤特殊表情_java--正则过滤表情
移动端传过来的表情直接过滤掉 /** * 过滤表情 * @param source * @return */ public static String filterEmoji(String sourc ...
- 输入框插入表情的实现
输入框插入表情的实现 HTML5 在普通的 textarea 中,只能显示普通的文本.如果简单的输入文本,textarea 便足以胜任.但是实际情况往往要复杂得多. 简单版本的插入表情 常见的版本一般 ...
- hive的udf,过滤表情等非法字符
实际工作环境中hive导出数据到Mysql,总是报错 ncorrect string value: '\xF0\x9F\x98\x97\xF0\x9F-' 这是由于手机表情不支持UTF-8的 运营那边 ...
最新文章
- 部署软件RDMA的步骤
- Jetty 9.0.0 首个里程碑出现
- 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第11章-连续时间多智能体系统牵制一致性
- x86架构linux内核引导过程分析,SylixOS---x86引导过程分析
- 一道关于笔试的多线程题目
- 阿里云容器Kubernetes监控(七) - Prometheus监控方案部署
- android Mvp简单实用
- (36)Verilog HDL关系运算:大于、小于、等于
- javascript Class-based vs. prototype-based
- 洛谷——P1615 西游记公司
- flash字体库打印
- 浏览器内核的解析和对比
- word自动编号与文字间距太大怎么办
- 前端页面开发浅谈:PC 端设计如何“完美”迁移到移动端?
- 贵金属软件MT4好不好用?MT4软件有什么优势特点?
- 铁路基因的传承与创新
- 特征工程(三) 数据标准化和归一化
- 使用w3c生成xml文件
- SAP HANA数据库HA双机架构概念及运维
- 使用差分法计算矩形波导前20截止频率(matlab实现)