JavaScriptでユーザー側でフォームの検証を行いたい(jQueryも使用されています)。 、私の唯一のアイデアは<div>
で[quote]
を.replaceすることですJavaScript:ネストされた[引用]を見つけよう
[quote=SoundMAX][quote=Laplundik]
blahblah
[/quote]
blah[/quote]
:目標は[quote]
タグより深いレベル2と言うよりも、ネストされたBBコードを削除することで、我々はこのテキストがあります。
[quote=SoundMAX][quote=Laplundik][quote=SoundMAX]
blahblahblah[/quote]
blahblah
[/quote]
blah[/quote]
をそしてこれを取得します次にDOMオブジェクトを作成し、jQueryで2より深いものを削除し、すべて逆向きに解析してbbCodeにします。しかし、その解決策は複雑すぎるようですが、よりエレガントなものがありますか?
EDIT:すてきなソリューションのための
感謝。ダリオの答えに基づいて、私はこれをしました:
var text=$('#edit-privatemsgbody').val();
var tmp=[];
var level=0;
for (var i=0,l=text.length;i<l;i++){
if(text[i]=='['&&text[i+1]=='q') level++;
if(text[i-6]=='q'&&text[i-7]=='/'&&text[i-8]=='[') level--;
if(level<3) tmp.push(text[i]);
}
alert(tmp.join(''));
うまく動作します。
しかし理想的な装置の溶液はフラッシュのようでした。前にコールバック関数のパラメータを置き換えることについてはわかりませんでしたが、今は便利です!私はそれで解決します。
*正規表現ではありません:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – PleaseStand
@idealmachine:それが私です別の解決策を求めている。 –