ウェブサイト開発では、js コードは単に文字列に含まれる漢字の数を決定するために使用されることがよくあります。今日は時間を割いて実装コードを共有します。早速、コードを載せておきます。
$("form").submit(function () { var content = editor.getContentTxt(); var sum = 0; re = /[\u4E00-\u9FA5]/g; //测试中文字符的正则 if (content) { if (re.test(content)) //使用正则判断是否存在中文 { if (content.match(re).length <= 10) { //返回中文的个数 $.dialog.tips("帖子正文不能小于10个汉字!"); return false; } else { var $submit = $("input[type='submit']").attr("disabled", true); setTimeout(function () { $submit.attr("disabled", false) }, 5000); return true; } } else { $.dialog.tips("帖子正文不能小于10个汉字!"); return false; } } else { $.dialog.tips("帖子正文不能小于10个汉字!"); return false; } });
さて、上記のコードは文字列に含まれる漢字の数を調べるjsの実装メソッドです。
追記: JS は入力文字列の長さを決定します (中国語文字は 2 文字としてカウントされ、英数字は 1 文字としてカウントされます)
中国語文字はデータベース内で 2 文字を占めます。入力文字がデータベース テーブルのフィールドの長さを超える場合、エラーが発生するのでフォアグラウンドで判断する必要があります。判定方法は 2 つあります:
方法 1: 正規表現を使用します。コードは次のとおりです:
function getByteLen(val) { var len = 0; for (var i = 0; i < val.length; i++) { var a = val.charAt(i); if (a.match(/[^\x00-\xff]/ig) != null) { len += 2; } else { len += 1; } } return len; }
方法 2: 文字 Unicode を使用して判定: 方法は次のとおりです:
function getByteLen(val) { var len = 0; for (var i = 0; i < val.length; i++) { var length = val.charCodeAt(i); if(length>=0&&length<=128) { len += 1; } else { len += 2; } } return len; }