「タグの外側(内側)だけ置換」の版間の差分
ナビゲーションに移動
検索に移動
ページの作成:「// replaceOneside.js<br> // 選択範囲のタグ("<"と">")の外側(または内側)だけを対象として置換します。<br> // reg = /.*/, replaceTo = ...」 |
編集の要約なし |
||
| 1行目: | 1行目: | ||
// replaceOneside.js<br> | // replaceOneside.js<br> | ||
// 選択範囲のタグ("<"と">")の外側(または内側)だけを対象として置換します。<br> | // 選択範囲のタグ("<"と">")の外側(または内側)だけを対象として置換します。<br> | ||
// reg = /.*/, replaceTo = "", | // reg = /.*/, replaceTo = "", repside.INSIDE のとき、タグの除去になります。<br> | ||
// 2013/01/11<br> | // 2013/01/11<br> | ||
<br> | <br> | ||
2013年1月13日 (日) 15:40時点における版
// 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 ) }
};
スポンサーリンク