ios - Swift : textField可输入的长度为4个汉字或者8个字符。咋判断
大家讲道理
大家讲道理 2017-04-18 09:24:15
0
4
345
        if self.tf.text?.characters.count > 4 {
            Tool.alertUser("昵称最多4个汉字,或者8个字符;数字,字母占一个字符,汉字占2个字符")
            return
        }

汉字最多4个,但是有人用英文名,只有4个字母明显不够,这咋办?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(4)
刘奇
var length = 0
for char in nickNameTF.text!.characters {
    // 判断是否中文,是中文+2 ,不是+1
    length += "\(char)".lengthOfBytesUsingEncoding(NSUTF8StringEncoding) == 3 ? 2 : 1
}
if length > 8 {
    Tool.alertUser("字数限制为4个汉字或者8个字符;汉字算2个字符,字母、数字算1个字符")
    return
}
小葫芦
  • Pertama sekali, aksara Cina tidak semestinya menduduki 2 bait.

  • Kedua, anda boleh cuba mengawal panjang melalui String().utf8.count.

  • Akhir sekali, anda juga boleh mengawalnya melalui ungkapan biasa.

迷茫

Saya telah melihat banyak kotak input yang dikira dalam bait.

洪涛

Saya merasakan bahawa soalan soalan harus diselesaikan dengan cara ini Walaupun aksara Cina mungkin menduduki 3 aksara, kami "berfikir" itu adalah dua aksara Tujuannya adalah untuk mengawal panjang nama panggilan bahasa Cina dan Inggeris, bukan untuk length of utf8
Jadi ia harus dinilai jika( a > 0x4e00 && a < 0x9fff){Maka itu bahasa Cina, mengira dua aksara}
Tetapi ia tidak begitu menyusahkan pada masa ini, hanya hadkannya kepada nilai , sebagai contoh, 10 adalah baik

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan