JSは、一段の文字の中のバイト数、アルファベット数、数字数、行数、漢字数を計算することを実現します.

4026 ワード

マッチを見て、最初に正規表現を使うことを思い出しました.ははは、やはり便利です.しかし、正規表現は高度不測のものです.まだ研究していません.分かりました.今は毛皮を少し習いました.コードは以下の通りです
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="generator" content="editplus" />
  <meta name="author" content="" />
  <meta name="keywords" content="" />
  <meta name="description" content="" />
 </head>

 <body>
  <script language="javascript">
    function countChar(){
    
    //document.getElementById("counterzj").innerHTML= document.getElementById("status").value.length;
    var nums = document.getElementById('status').value;
    var zj=nums.replace(/[^\S]/g,""); 
    document.getElementById("counterzj").innerHTML= zj.length;

    var sz = nums.replace(/[^0-9]/g,""); 
    document.getElementById('countersz').innerHTML = sz.length;
    
    var hs = nums.replace(/[^
]/g,""); document.getElementById('counterhs').innerHTML = hs.length+1; var zm = nums.replace(/[^a-z]/ig,""); document.getElementById('counterzm').innerHTML = zm.length; var hz=nums.replace(/[^\u4e00-\u9fff]/g,"") document.getElementById('counterhz').innerHTML = hz.length; } </script> <button type='button' onclick="countChar()"> </button><br> :<span id="counterzj"></span><br> :<span id="countersz"></span><br> :<span id="counterzm"></span><br> :<span id="counterhs"></span><br> :<span id="counterhz"></span><br> <textarea id="status"cols="50" rows="30"> </textarea> </body> </html>
コードの説明:
1、var zj=nums.replace(/[^\S]/g,");  nums中のすべての空白文字を取得し、replace()メソッドは文字列の中で他の文字を一部の文字で置換するか、正規表現と一致するサブストリングを置換するために使用されます.このようにziの長さを読めば、バイトの長さが分かります.
^記号は、行の先頭に合わせるために使用されます.g全文検索で出現したすべてのマッチ文字に使用します.\Sはすべての空白文字にマッチします.
2、var sz=nums.replace(/[0-9]/g,");その他は同じで、0-9は数字にマッチするために使用されます.
3、var hs=nums.replace(/[^]/g,");その他の同じ1は、行の区切りを合わせるために使用されます.
4、var zm=nums.replace(/[a-z]/ig,"); 他の同じ1、a−zは、すべてのa−zに一致する文字に用いられ、iは、大文字と小文字を区別しないことを表す.
5、var hz=nums.replace(/^\u 4 e 00-\u 9 fff)/g、「」;他の同じ1、\u 4 e 00-\u 9 fffはすべての漢字を表します.u 4 e 00からu 9 fffは漢字のユニックコードの範囲です.
最後に上の5つの長さを出力すればいいです.コードのデモは以下の通りです.
 
テーマバイト数の生成を開始します.数字:字数:行数:漢字数:
コードは間違いなく多くのバグがあります.まだ足りないところがあります.今改善しています.そして、方法を考えて単語と注釈にマッチします.
ホームページに入ってコードを確認してもいいです.
コード