LANG SELRCT

コードを書く場所についてはこちら

2018年3月6日火曜日

正規表現で文章からひらがなとカタカナを抜き出す


文章の中からひらがなとカタカナを検出する

ひらがなとカタカナのパターンを用意して一致する(又はしない)テキストをアラートに出してみる






コード.gsでログに出してみる


コード.gs
function get_hira_kana(){
  var str = "abcABC123abcABC123かなカナカナ仮名ひらがなカタカナカタカナ漢字";
  var pattern = /[ぁ-ゟー]+|[゠-ヿ]+/g;
  var result = str.match(pattern);
  Logger.log(result);
}
意訳
この処理は以下を実行する
探索対象の文字列
ひらがなまたはカタカナのパターン
一致するものを探して
ログに出す




実行結果


HTML Serviceで作ってみる


コード.gs
function doGet(){
 return HtmlService.createHtmlOutputFromFile("index"); 
}
意訳
この処理は以下を実行する
指定したHTMLファイルを表示する



index.html
<!DOCTYPE html>
<html>
<body>
  <textarea id="ta"style="width:360px;height:10em;"></textarea>
  <br>
  <label><input type="checkbox" id="cb">ひらがなカタカナ以外</label>
  <br>
  <button id="bt">実行</button>
  <script>
    var bt = document.getElementById("bt");
    var ta = document.getElementById("ta");
    var cb = document.getElementById("cb");
    bt.onclick = get_hira_kana;

    function get_hira_kana() {
      var value = ta.value;
      var cb_checkd = cb.checked;
      var result = get_result(value, cb_checkd);
      alert(result);
    }

    function get_result(str, flag) {
      var hira_kana = "[ぁ-ゟー]+|[゠-ヿ]+";
      var not_hira_kana = "[^ぁ-ゟー゠-ヿ]+";
      if (flag == true) {
        var target = not_hira_kana;
      }else{
        var target = hira_kana;
      }
      var pattern = new RegExp(target, "g");
      var result = str.match(pattern);
      return result;
    }
  </script>
</body>
</html>
意訳
 


テキストエリア
改行
ラベルとチェックボックス
改行
ボタン

idがbtの要素を取得する
idがtaの要素を取得する
idがcbの要素を取得する
btがクリックされたらget_joyoを実行する

この機能がやること
taの値を取得して
チェック状態を取得して
get_resultに渡す
返ってきたresultをアラートに出す


この機能がやること
ひらがなカタカナ
ひらがなとカタカナ以外
もしflagがtrueなら
targetを含まないパターンを作る
falseなら
targetを含むパターンを作る

正規表現オブジェクトを作り
resultに一致する結果を入れて
返す






試してみる


ひらがなとかたかなだけを取得する



文章の中からひらがなとカタカナ以外を検出する




関連記事

ひらがなを抜き出す /[ぁ-ゟー]+/g
カタカナを抜き出す /[゠-ヿ]+/g
new RegExp()を使ってパターンを作る