美文网首页
Swift3.0 UITextField 限制表情emoji输入

Swift3.0 UITextField 限制表情emoji输入

作者: BakerCheng | 来源:发表于2017-01-11 13:21 被阅读87次

    Method -Common (Class)

    func checkStrHaveEmoji(_ string : String) -> Bool {

    for char in string.characters{

    let codePoint = String(char).unicodeScalars.first?.value

    if  (codePoint >= 0x2600 && codePoint <= 0x27BF) // 杂项符号与符号字体

    || codePoint == 0x303D

    || codePoint == 0x2049

    || codePoint == 0x203C

    || (codePoint >= 0x2000 && codePoint <= 0x200F)//

    || (codePoint >= 0x2028 && codePoint <= 0x202F)//

    || codePoint == 0x205F //

    || (codePoint >= 0x2065 && codePoint <= 0x206F)//

    /* 标点符号占用区域 */

    || (codePoint >= 0x2100 && codePoint <= 0x214F)// 字母符号

    || (codePoint >= 0x2300 && codePoint <= 0x23FF)// 各种技术符号

    || (codePoint >= 0x2B00 && codePoint <= 0x2BFF)// 箭头A

    || (codePoint >= 0x2900 && codePoint <= 0x297F)// 箭头B

    || (codePoint >= 0x3200 && codePoint <= 0x32FF)// 中文符号

    || (codePoint >= 0xD800 && codePoint <= 0xDFFF)// 高低位替代符保留区域

    || (codePoint >= 0xE000 && codePoint <= 0xF8FF)// 私有保留区域

    || (codePoint >= 0xFE00 && codePoint <= 0xFE0F)// 变异选择器

    || codePoint >= 0x10000{

    return true

    }

    }

    return false

    }

    TestCase -CommonTest(Class)

    var  string = "🐶sdfavas"

    XCTAssertTrue(Common().checkStrHaveEmoji(string))

    string = "🐶嗯。那的"

    XCTAssertTrue(Common().checkStrHaveEmoji(string))

    string = "😄🐶😄😂☠️"

    XCTAssertTrue(Common().checkStrHaveEmoji(string))

    string = "sadfa[微笑][惊讶][惊恐]那的"

    XCTAssertFalse(Common().checkStrHaveEmoji(string))

    string = "sadfa🐶🐶🐳🐱那的"

    XCTAssertTrue(Common().checkStrHaveEmoji(string))

    string = "sadf🐶🐳🐱a那的"

    XCTAssertTrue(Common().checkStrHaveEmoji(string))

    string = "sadfa那的"

    XCTAssertFalse(Common().checkStrHaveEmoji(string))

    相关文章

      网友评论

          本文标题:Swift3.0 UITextField 限制表情emoji输入

          本文链接:https://www.haomeiwen.com/subject/prcrbttx.html