JavaScript は Unicode でエンコードされているため、JavaScript ではすべての文字が 1 つですが、バックグラウンド プログラムではそうではありません。通常、バックグラウンド プログラムでは 1 つの漢字が 2 バイトを占有し、これがフロントエンドとバックエンドの検証長につながります。矛盾、この問題は正則化によって解決できます。
function getRealLen( str ) {
return str. replace(/[^x00-xff]/g, '__').length; //これはすべての 2 バイト文字に一致します
}
もう 1 つの小さなヒントが含まれています:
レイアウトやインターフェースに影響を与えず、美しさを保つために、一部のコピーライティングが切り捨てられることがあります。ただし、中国語が英語の標準に従って切り捨てられる場合、または英語が切り捨てられる場合は、中国語と英語の幅が異なります。中国の基準に従えば、明らかに長いものもあれば短いものもありますが、特に中国語と英語の両方を使用しやすいニックネームなどは、上記のアイデアを使用することもできます
function BeautySub( str, len) {
var reg = /[u4e00-u9fa5]/g, //プロフェッショナルな中国語マッチング
スライス = str.substring(0,len),
realen = len - ( ~~( slide.match(reg) && slide.match(reg).length) ); ;
}
ここでは、1 つの漢字が 2 つの英語文字の幅であると考えます。完璧主義者であれば、j、w、m の幅は異なると考える必要があります。 w、m および一部の大文字は中国語と一致します。この関数の規則性には改善の余地が大きく、切り捨ての開始位置も指定できます。