正規表現を用いた置換がうまくできない問題について、
vbscriptではなくjavascriptなら\rを含まないので
問題なく置換できるのではないかと考えて、
mod_regexp.asを実装しようとしているのですが、
改行が消える問題は同じく発生しました。
\rは含まないのにです。
オンラインのjavascriptで文字列置換を試せるサイトでは改行は消えません。
原因は何だと思いますか?
また、scriptcontrolで配列を受け取るにはどうすればいいですか?
(matchesの実装に使います)
以下に減少が確認できるプログラムを載せておきます。
#module #defcfunc jsrun str code,str func newcom objjs, "ScriptControl" objjs("Language")="javascript" objjs->"AddCode" code comres re objjs->"Run" func return re #defcfunc jsrun2 str code,str func,str p newcom objjs, "ScriptControl" objjs("Language")="javascript" objjs->"AddCode" code comres re objjs->"Run" func,p return re #defcfunc replace str target,str Pattern,str repstr,int IgnoreCase,int Global,int Multiline opt="" if(IgnoreCase=0):opt+="i" if(Global=0):opt+="g" if(Multiline=0):opt+="m" code={" function replace(str){ var pat=/"}+Pattern+{"/"}+opt+{"; var rstr=\""}+repstr+{"\"; return str.replace(pat,rstr) } "} return jsrun2(code,"replace",target) #global code = {" mes "1" mes "2" ; t mes "3" ; t mes "4" // t mes "5" // t "} ; コメント文を消去 code = replace(code,";.*", "") // セミコロン code = replace(code,"\\/\\/.*", "") // スラッシュx2 mesbox code,ginfo_winx,ginfo_winy,5