if self.tf.text?.characters.count > 4 { Tool.alertUser("昵称最多4个汉字,或者8个字符;数字,字母占一个字符,汉字占2个字符") return }
汉字最多4个,但是有人用英文名,只有4个字母明显不够,这咋办?
光阴似箭催人老,日月如移越少年。
リーリー
まず、漢字は必ずしも 2 バイトを占めるわけではありません。
次に、String().utf8.count を介して長さを制御してみることができます。
String().utf8.count
最後に、正規表現を使用して制御することもできます。
バイト単位でカウントされる入力ボックスを多く見てきました。
質問の問題はこのように解決されるべきだと感じますが、中国語の文字は 3 文字を占める可能性がありますが、私たちはそれが 2 文字であると「考えています」。目的は中国語と英語のニックネームの長さを制御するためではありません。 utf8 の長さ したがって、 if( a > 0x4e00 && a < 0x9fff){2 文字を数える中国語であると判断する必要があります}しかし、現時点ではそれほど面倒ではなく、値に制限するだけです、たとえば、10 が適しています
リーリー
まず、漢字は必ずしも 2 バイトを占めるわけではありません。
次に、
String().utf8.count
を介して長さを制御してみることができます。最後に、正規表現を使用して制御することもできます。
バイト単位でカウントされる入力ボックスを多く見てきました。
質問の問題はこのように解決されるべきだと感じますが、中国語の文字は 3 文字を占める可能性がありますが、私たちはそれが 2 文字であると「考えています」。目的は中国語と英語のニックネームの長さを制御するためではありません。 utf8 の長さ
したがって、 if( a > 0x4e00 && a < 0x9fff){2 文字を数える中国語であると判断する必要があります}
しかし、現時点ではそれほど面倒ではなく、値に制限するだけです、たとえば、10 が適しています