文字列, 全角数字を半角数字に一括置換
文字列, 全角数字を半角数字に一括置換 (String, Batch Replace Fullwidth Numbers with Halfwidth Numbers)

全ての全角数字を半角数字に置換します。”0” から “9” までの数字が置換対象です。記号や英字などは置換されません。なお置換された件数はログにて確認可能です。

2020-02-04 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/string-batch-replace-fullwidth-numbers-with-halfwidth-numbers/

Configs
  • A: 入力文字列をセットしてください * #{EL}
  • B: 出力文字列が格納される文字列型データ項目を選択してください (更新) *
  • C: 置換された文字の数が格納される数値型データ項目を選択してください (更新)
Script
// (c) 2020, Questetra, Inc. (the MIT License)
// Notes:
// Halfwidth Numbers (Hankaku / 半角)
// https://www.unicode.org/charts/PDF/U0000.pdf
// "0":U+0030, "1":U+0031, "2":U+0032, "3":U+0033, "4":U+0034,
// "5":U+0035, "6":U+0036, "7":U+0037, "8":U+0038, "9":U+0039
// Fullwidth Numbers (Zenkaku / 全角)
// https://www.unicode.org/charts/PDF/UFF00.pdf
// "0":U+FF10, "1":U+FF11, "2":U+FF12, "3":U+FF13, "4":U+FF14,
// "5":U+FF15, "6":U+FF16, "7":U+FF17, "8":U+FF18, "9":U+FF19

//////// START "main()" ////////////////////////////////////////////////////////////////
main();
function main(){ 

//// == Config Retrieving / 工程コンフィグの参照 ==
const strInput = configs.get( "conf_StrInput" ) + ""; // config required
const dataIdB  = configs.get( "conf_DataIdB" )  + ""; // config required
const dataIdC  = configs.get( "conf_DataIdC" )  + ""; // config required

if( strInput === "" ){
  engine.log( " AutomatedTask ConfigWarning:" +
              " Config {ID String} is empty" );
}


//// == Data Retrieving / ワークフローデータの参照 ==
// Nothing (except EL-expression Config)


//// == Calculating / 演算 ==
let strForCount = strInput.replace(/[0-9]/g, "");
let strOutput = strInput.replace(/[0-9]/g, 
                                 function(s){
                                   return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
                                 });

let numReplaced = strOutput.length - strForCount.length;
engine.log( " AutomatedTask #Replaced: " + numReplaced );


//// == Data Updating / ワークフローデータへの代入 ==
engine.setDataByNumber( dataIdB, strOutput );
if( dataIdC !== "" ){ 
  engine.setDataByNumber( dataIdC, new java.math.BigDecimal( numReplaced ) );
}

} //////// END "main()" ////////////////////////////////////////////////////////////////

Download

Capture

全ての全角数字を半角数字に置換します。"0" から "9" までの数字が置換対象です。記号や英字などは置換されません。なお置換された件数はログにて確認可能です。

Notes

  1. Halfwidth Numbers (Hankaku / 半角) https://www.unicode.org/charts/PDF/U0000.pdf
    • “0”:U+0030, “1”:U+0031, “2”:U+0032, “3”:U+0033, “4”:U+0034,
    • “5”:U+0035, “6”:U+0036, “7”:U+0037, “8”:U+0038, “9”:U+0039
  2. Fullwidth Numbers (Zenkaku / 全角) https://www.unicode.org/charts/PDF/UFF00.pdf
    • “0”:U+FF10, “1”:U+FF11, “2”:U+FF12, “3”:U+FF13, “4”:U+FF14,
    • “5”:U+FF15, “6”:U+FF16, “7”:U+FF17, “8”:U+FF18, “9”:U+FF19

See also

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。