InDesign+JavaScript正規表現

平成の不正な年号範囲をチェック(1〜31の整数値のみ)

サンプルデータとプログラムをダウンロード

平成の不正な年号範囲をチェックします。平成32年や平成99年など1〜31でない場合に文字を赤字で示します。全角半角とも混在していてもチェック対象になります。

// InDesign正規表現サンプル
// プログラムで不正な値をチェック
reMatch("平成\\d{1,}年");
// パターンマッチした文字を赤にする
function reMatch(grepText){
    app.findGrepPreferences=NothingEnum.nothing;
    app.findGrepPreferences.findWhat=grepText;
    var cStyle=app.activeDocument.characterStyles.itemByName("red");
    for(var i=0; i<app.activeDocument.textFrames.length; i++){
        var result=app.activeDocument.findGrep();
        for(var j=0; j<result.length; j++){
            var text=result[j].contents.replace(/平成/,"").replace("年","");
            text=text.replace(/[0-9]/g,function(c){
                return String.fromCharCode(c.charCodeAt(0)-65296+48);
            });
            var n=parseInt(text);
            if((n<1)||(n>31)){
                result[j].applyCharacterStyle(cStyle);
            }
        }
    }
}