文字列からHTMLタグを取り除く javascript ライブラリ「striptags」の紹介です。
striptagsで出来ること
- PHPの " strip_tags()
" 関数 相当の機能が javascript で使える
striptagsのインストール
stripgtags は npm
又は yarn
を使って入手します。また、ブラウザから使う場合はCDNを通してライブラリを読み込むことも可能です。
# npm
npm install striptags --save
# yarn
yarn add striptags
# cdn *IE 11以上
https://unpkg.com/striptags
striptagsの使い方
striptags の使い方は簡単で、PHPの ' strip_tags
' 関数と 使い方は変わりません。
第一引数に元となる文字列を指定すると、HTMLタグが消去されます。
// ブラウザの場合、そのまま striptags()関数が呼び出せます
const striptags = require("striptags");
let baseHtml =
"<div href='someClass'>" +
"<strong>stripgtags</strong> を 使った<i>テスト</i>" +
"</div>";
// output: stripgtags を 使ったテスト
striptags(baseHtml);
第二引数で保持したいHTMLタグを指定することも出来ます。
const striptags = require("striptags");
let baseHtml =
"<div href='someClass'>" +
"<strong>stripgtags</strong> を 使った<i>テスト</i>" +
"</div>";
// output: <strong>stripgtags</strong> を 使ったテスト
striptags(baseHtml, "<strong>")
第二引数の許可タグを配列で渡すことで、許可する複数タグを一度に指定することもできます。
const striptags = require("striptags");
let baseHtml =
'<div href="someClass">' +
'<strong>stripgtags</strong> を 使った<i>テスト</i> ' +
'</div>' +
'<script>'+
' console.log('js injection')' +
'</script>';
// 許可するタグ
let whiteListTags = ['strong', 'i']
striptags(baseHtml, whiteListTags);
// output
//<strong>stripgtags</strong> を 使った<i>テスト</i>
// console.log('js injection')
第三引数では置き換えたい文字列を指定できます。
( 下のスニペットは改行を指定 )
const striptags = require("striptags");
let baseHtml =
"<div href='someClass'>" +
"<strong>stripgtags</strong> を 使った<i>テスト</i>" +
"</div>";
// output:
// <strong>stripgtags</strong> を 使った
// テスト
striptags(baseHtml, "<strong>", "\n")
Summary
以上が stripgtags の紹介でした。フォームから送信するPOSTデータからhtmlタグを取り除くとき、Webスクレイピングで取得したタグのデータを加工する時に使うと便利そうです。
GitHub : ericnorris/striptags