タグの外側(内側)だけ置換
// replaceOneside.js
// 選択範囲のタグ("<"と">")の外側(または内側)だけを対象として置換します。
// reg = /.*/, replaceTo = "", repside.INSIDE のとき、タグの除去になります。
// 2013/01/11
var str = Editor.ActiveDocument.Selection.Text
var reg = new RegExp( ".*", "ig" );
var replaceTo = "";
var repside = { OUTSIDE : true, INSIDE : false }
str = replaceOneside( str, reg, replaceTo, repside.OUTSIDE );
Editor.ActiveDocument.Selection.Text = str;
function replaceOneside( str, reg, rep, repOutside ) {
// 返り値:文字列。
// str:置換する文字列。
// reg:置換前パターン(文字列または正規表現)。
// rep:置換後文字列。
// repOutside:タグの外側を置換するとき true。falseのときは内側。
if ( repOutside == undefined ) { repOutside = false };
var tag_simple = "<[^>\n]*>";
var others = "[^<]+";
if ( repOutside ) {
others = "(" + others + ")";
} else {
tag_simple = "(" + tag_simple + ")";
}
var regex = new RegExp( [ tag_simple, others ].join( "|" ), "ig" )
return str.replace( regex, func );
function func( s0, s1 ) { return ( s1 === undefined ) ? s0 : s1.replace( reg, rep ) }
};
スポンサーリンク