前提・実現したいこと
今Java8で入力値のテキストに対して、HTMLバリデーションを実装しています。HTMLタグが入力されている際の開始タグ終了タグチェックです。
たとえば<b>aiueo
なら</b>
がないのでエラー、aiueo</b>
なら<b>
がないのでエラー、<b>aiueo</b>
ならエラーなしです。
終了タグが必要なタグは候補として出せているので、シンプルに
「開始タグ終了タグ」チェックのロジックを実装したいです。ただ正規表現は処理が重くなるので他の方法(例えばJavaのAPIのメソッドを使ったり)で実装したいです。
ただしAPI側の実装なのであくまでJava側での実装になります。
わかる方はいらっしゃいますでしょうか?アイデアやヒント、キッカケ、予想でも構いません。
よろしくお願いいたします。
背景
商品説明のテキストボックスにHTMLも入力できますが、その際のバリデーション機能をつけることを任されています。
ただし、実装する箇所はAPI側なので、Javaでの実装になります。
また正規表現ではじめ実装していましたが、責任者からパフォーマンスの問題から正規表現はやめてほしいと言われました。
チェックしたい内容は
①あらかじめ終了タグが必要な対象のタグはラインナップされており、そのタグの場合終了タグが必要(a,table,bなど)
②終了タグがあり、開始タグがない場合もエラー
③属性やコメントタグに終了タグの文字列が入っているケースも考慮する。チェックしないように。
④タグ内に空白がある場合もチェックする。< a>のように。
意図
とくに②〜④についてどうしたらできるかなと思いました。
あとはより良い実装方法はないかと思いました。
試したこと
こちらのページを参考にし、実装しています。
http://www5b.biglobe.ne.jp/~taka_2/jclass/Stack.html
ただ終了タグがあって、開始タグがないケースもチェックしたいし、コメントになっている箇所はチェック対象からは外したいので、そのケースをどう追加しようかなと思っています。
https://java-source.net/open-source/html-parsers
またこのページも勉強しています。使えるクラスはないかと。どのように使うのかと。
回答1件
あなたの回答
tips
プレビュー