HTMLタグを削除

VBScriptの正規表現でHTMLタグを削除

※正規表現の実際のパターンは、「 <("[^"]*"|'[^']*'|[^'">])*> 」。上記の表内は"(ダブルクォーテーション)をエスケープしています。

"VBScript"を指定し、ScriptContorol作成。

    フィールド設定 [test::er; iiil_Create( test::language )/*vbscriptまたはjscript、空欄=破棄*/]

フィールド名:「Script」のVBScriptを実行。VBS内(patrn、replStr)に値が設定されます。

Function ReplaceTest(str1)は、読み込まれますが、まだ実行されません。

    フィールド設定 [test::er; iiil_Exe( test::script )]

VBScriptで文字列を扱う場合、"(ダブルクォーテーション)を2つにし、エスケープする必要があるので " -> "" (1個から2個)へ置換します。

あと、改行もダメなようなので、 " & vbCr & " に置換します。( 以下 \" は、ファイルメーカーでの " のエスケープ)

    変数を設定 [$val; 値:Substitute ( test::Value ; ["\"" ; "\"\""] ; [ "¶" ; "\" & vbCr & \"" ])]

置換前

 フィールド名

 Value

 値

<html>

<body text="#000000">

<P>Hello!</P>

<h1>"hoge"</h1>

</body>

</html>

置換後

 変数

 $val

 値

<html>" & vbCr & "

<body text=""#000000"">" & vbCr & "

<P>Hello!</P>" & vbCr & "<h1>""hoge""</h1>" & vbCr & "

</body>" & vbCr & "</html>

もう一度、iiil_Exe()を実行しVBS内(Str1)の値を設定します。

フィールド設定 [test::er; iiil_Exe( "str1=" & "\"" & $val  & "\"" )]

Function ReplaceTest(str1)を iiil_eval( "ReplaceTest(str1)" ) で実行し値を取得します。

フィールド設定 [test::Result; iiil_eval( test::Script_eval)]

結果

 フィールド名

 Result

 値

Hello!

"hoge"