js replace_javascript スキル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-05-16 19:06:04
オリジナル
1278 人が閲覧しました

質問: ()()()(())()) を [][][[[]][]] に置き換えるだけです。これは括弧の一致を処理するために使用されます
作成者: infinte
要件:
[1] あらゆる「括弧」をサポートします。つまり、[]<>{}()...または XML のようなもの: 、[cc] [cc] を使用できます。 :over], {ttt] [ttt}
[2] レベルを厳密に一致させます。つまり、(a)b(c(d)e) は、代わりに [a]b[c[d]e] に置き換えられます。 [a]b[c(d]e) (終了が早すぎます)
[3] 左括弧が右括弧よりも多い場合は、余分な括弧を保持します。つまり、 ()()((()( )) → [ ][]([[][]]
[4] 右括弧の数が左括弧よりも多くなります。余分な括弧はそのままにしておきます。つまり、 (()()(()()))) )) → [[][ ][[][]]])))

オプション 1: スタックを使用する
作成者: Winter
コード:

コードをコピーします コードは次のとおりです:

<script> <br>var strArr = "()()((() ())"; <br><br>関数変更(str) <br>{ <br> var a=str.split(""); <br> var c=0; <br> var stack=[] ; <br> var match={ <br> "(":")", <br> "{":"}", <br> "<":">", <BR> "【": "]" <BR> } <BR> for(var i=0;i<a.length;i ) <BR> if(match[a[i]]){ <BR> stack.push([a[i] ],i]); <BR> } <BR> else if(a[i]==")"||a[i]=="}"||a[i]==">"|| a[i]=="]") { <br> if(!stack.length) continue; <br> var tmp=stack.pop(); [i])a[i]=" ]",a[tmp[1]]="["; <br> else stack.push(tmp); <br> } <br> return a.join("" ) ; <br>} <br>alert (change(strArr)); <br><br><br>オプション 2: 正規表現を使用する</div>作成者: Yueying<br> : <br><br><br><div class="codetitle"><span>コードをコピー<a style="CURSOR: pointer" data="25316" class="copybut" id="copybut25316" onclick="doCopy('code25316')"><u></u> コードは次のとおりです。</a></span></div> <div class="codebody" id="code25316">var strArr = "()()((()()) "; <br>var o = strArr; <br>var r = o; <br>do{ <br> o = r; <br> r = o .replace(/(([^()]*)) /g,function(s,a){return '[' a ']'}); while(o!=r);アラート(r); <br></script>

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート