jsの文字列置換関数replace
1436 ワード
最近jsで1つのテンプレートで置換する関数を書いて、1つのオブジェクトと1つのテンプレートの文字列に入って、テンプレートの中の対応する変数を対応する値に置換して、この機能はとても簡単で、オブジェクトを遍歴して、それからjsの持参するreplace関数を使って置換して、書いた後に、最初はとても使いやすいと思って、バグも出ていませんて、それからパラメータを加える必要がある時、1つの変数、オブジェクトをプラスして、置換しました、しかし、その後、置き換えられない場所があることに気づき、長い間デバッグしていたが、何の原因も見つからず、ドキュメントを調べてみると、replaceが部分的に置き換えられ、すべて置き換えられていた.
stringObject.replace(regexp/substr,replacement)
1番目のパラメータはRegexpオブジェクトまたは置換する文字列、2番目のパラメータは置換する文字列です.
これは部分的に置換され、結果は123 defgabcdefgであり、後のabcは置換バーではない.
次のようなものなら全部置き換えます
これで2つのabcを置き換えることができます
はい、これでテンプレート置換関数にコードをコピーしたら、大丈夫だと思いますが、試してみると、やはり通じません.私の置換コードはそうです.
nameはそれぞれ名前と値で、このように組み立てると上/abc/gのような形になりますが、外に引用符をつけた後、文字列になります./gの役割がなくなり、この方法は通用しません.
これではreplaceのもう一つの使い方しか使えません.Regexpオブジェクトを入力します.コードは次のとおりです.
つまり正規表現で、最初のパラメータは
正規表現のモードまたはその他の正規表現を指定する文字列
2番目のパラメータはマッチングを指定する方法であり、gはグローバルマッチングである.
この方法で文字列を動的に置き換えることができ、最後にテストして、私の関数はやっと使えました...
注:ここではこの関数を大まかに説明しただけですが、具体的にはスクリーンのこのアドレスをスタンプで押してください.http://www.w3school.com.cn/jsref/jsref_replace.asp
stringObject.replace(regexp/substr,replacement)
1番目のパラメータはRegexpオブジェクトまたは置換する文字列、2番目のパラメータは置換する文字列です.
var s = 'abcdefgabcdefg';
alert(s.replace('abc', '123'));
これは部分的に置換され、結果は123 defgabcdefgであり、後のabcは置換バーではない.
次のようなものなら全部置き換えます
var s = 'abcdefgabcdefg';
alert(s.replace(/abc/g, '123'));
これで2つのabcを置き換えることができます
はい、これでテンプレート置換関数にコードをコピーしたら、大丈夫だと思いますが、試してみると、やはり通じません.私の置換コードはそうです.
temp = temp.replace('/{'+name+'}/g', value);
nameはそれぞれ名前と値で、このように組み立てると上/abc/gのような形になりますが、外に引用符をつけた後、文字列になります./gの役割がなくなり、この方法は通用しません.
これではreplaceのもう一つの使い方しか使えません.Regexpオブジェクトを入力します.コードは次のとおりです.
var reg = new RegExp('{'+name+'}','g');
temp = temp.replace(reg, value);
つまり正規表現で、最初のパラメータは
正規表現のモードまたはその他の正規表現を指定する文字列
2番目のパラメータはマッチングを指定する方法であり、gはグローバルマッチングである.
この方法で文字列を動的に置き換えることができ、最後にテストして、私の関数はやっと使えました...
注:ここではこの関数を大まかに説明しただけですが、具体的にはスクリーンのこのアドレスをスタンプで押してください.http://www.w3school.com.cn/jsref/jsref_replace.asp