正規表現で性的なワードをNGワードとして規制する

フェラチオは一般的には性行為を指す単語なんですが、このワードがウェブページに含まれていると特定のユーザーを不快にさせる可能性があるのと、グーグルアドセンスのポリシー違反に該当してしまう可能性があるので「フェラチオ」を正規表現で規制します。

スポンサーリンク

「フェラチオ」は性的なワードのなかでも厄介

「フェラチオ」は一般的な会話の中ではよく「フェラ」と訳される場合があります。ですので単に「フェラチオ」というワードをNGワードに指定しただけでは完全に規制できません。しかしこれで「フェラ」というワードを規制しようとした場合に正規表現で検索しようとすると「カフェラテ」や「フェラーリ」にもマッチしてしまうことになります。ですので厄介なんですがこれの解決方法があります。

スポンサーリンク

「フェラ」のあとに漢字あるいはひらがなが来た場合の正規表現で規制する

性的な単語の「フェラ」を規制したい場合は「フェラ」のあとに漢字あるいはひらがなが来た場合の正規表現で規制します。この場合は「フェラーリ」や「カフェラテ」などの単語にはマッチしません。

正規表現は以下です。

/フェラ[一-龯ぁ-ん]/

さらに詳しくかくと「フェラチオ」をNGワードにしたうえでさきほどの正規表現でさらに規制します。

let text = 'カフェラテを買ってきた';

// テキストにフェラチオを含むかどうかを判定
const containsNgWord = text.indexOf('フェラチオ') !== -1; // 結果はfalse

// テキストにフェラのあとに漢字かひらがなが出現するワードを含むかどうかを判定
const containsFelatio = /フェラ[一-龯ぁ-ん]/.test(text); // 結果はfalse

上記の例ではtextにNGワードが含まれないのでどちらの変数も値はfalseになります。このコードはただ単に「真/偽」の値を変数に代入しているだけですが、自分が作っているプロジェクトで動作させるためには適宜コードを修正する必要があるでしょう。

まとめ

一見難しそうに見えた「フェラチオ」というワードの規制ですが、きちんと対応できました。この正規表現を応用することによって他のNGワードも同様の方法で規制することができるかもしれません。

コメント

タイトルとURLをコピーしました