複数のコンマを含む文字列があり、文字列置換メソッドは最初のもののみを変更します:
var mystring = "this,is,a,test"
mystring.replace(",","newchar", -1)
結果:"thisnewcharis,a,test"
ドキュメントは、デフォルトがすべてを置き換えることを示し、「-1」もすべてを置き換えることを示しますが、失敗します。何かご意見は?
複数のコンマを含む文字列があり、文字列置換メソッドは最初のもののみを変更します:
var mystring = "this,is,a,test"
mystring.replace(",","newchar", -1)
結果:"thisnewcharis,a,test"
ドキュメントは、デフォルトがすべてを置き換えることを示し、「-1」もすべてを置き換えることを示しますが、失敗します。何かご意見は?
functionの 3 番目のパラメーターはString.prototype.replace()
標準として定義されていないため、ほとんどのブラウザーは単にそれを実装していません。
g
var myStr = 'this,is,a,test';
var newStr = myStr.replace(/,/g, '-');
console.log( newStr ); // "this-is-a-test"
正規表現では、エスケープする必要がある特殊文字が使用されることに注意してください。.
例として、ドット ( ) 文字をエスケープする必要がある場合は、/\./
リテラルを使用する必要があります。正規表現構文では、ドットは任意の 1 文字 (行末記号を除く) と一致するためです。
var myStr = 'this.is.a.test';
var newStr = myStr.replace(/\./g, '-');
console.log( newStr ); // "this-is-a-test"
変数を置換文字列として渡す必要がある場合は、正規表現リテラルを使用する代わりに、RegExp
object を作成し、コンストラクターの最初の引数として文字列を渡すことができます。通常の文字列エスケープ規則 (文字列\
に含まれる特殊文字の前にある) が必要になります。
var myStr = 'this.is.a.test';
var reStr = '\\.';
var newStr = myStr.replace(new RegExp(reStr, 'g'), '-');
console.log( newStr ); // "this-is-a-test"
楽しみのために:
var mystring = "this,is,a,test"
var newchar = '|'
mystring = mystring.split(',').join(newchar);