4

文字列を検索して特定の部分を別のものに置き換える方法はたくさんありますが、どの方法が最も適しているかを教えてください。

たとえば、次の文字列を考えてみましょう:

http://ashleyfurniture.scene7.com/is/image/AshleyFurniture/B233-48-OPEN-SD?wid=640&hei=180&fit=fit&align=0,0&qlt=95&resMode=sharp2

私が出会うまで(最初のもの)、または文字列の終わりがない場合は文字列の終わりを検索しwid=て置き換えたいとしましょう。&

&検索していた場所のインデックスの後の最初のインデックスと組み合わせて、正規表現または通常の検索を使用しますか?

4

5 に答える 5

3

それは正規表現にぴったりのように聞こえます。正規表現エンジンは、文字列内のパターンを見つけるために最適化されており、まさにそれがここで目指していることです。などを使用してネイティブ JavaScript でそれを複製しようとすると、search()おそらく遅くなります。また、正規表現はおそらく理解しやすいでしょう:

/\bwid=([^&]*)/

がある場合はwid=、次の まで、それに続くすべてに一致します。&

例えば、

result = subject.replace(/\bwid=([^&]*)/g, "wid=1234");

wid=<anything>すべてをに置き換えますwid=1234

説明:

\b     # Start at a word boundary (so we don't match "rowid=" etc.)
wid=   # Match wid=
(      # Match and capture (for later re-use, if necessary):
 [^&]* # Zero or more characters (any character except &)
)      # End of capturing group
于 2013-05-01T15:32:12.813 に答える
0

正規表現が最善の策のようです。文字列が にあると仮定するとa

a.replace(/wid=([^&]+)/,"wid=WHATEVER")
于 2013-05-01T15:33:30.827 に答える