ホームページ  >  記事  >  ウェブフロントエンド  >  純粋な JS コードを使用して文字列に含まれる中国語の文字の数を確認する方法

純粋な JS コードを使用して文字列に含まれる中国語の文字の数を確認する方法

高洛峰
高洛峰オリジナル
2016-12-07 10:07:361297ブラウズ

ウェブサイト開発では、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=&#39;submit&#39;]").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;
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。