This is the first time I discovered that the replace() method in JavaScript will only replace the first matching character if str.replace("-","!") is used directly.
And str.replace(/\-/g,"!") can replace all matching characters (g is a global flag).
replace()
The replace() method returns the string that results when you replace text matching its first argument
(a regular expression) with the text of the second argument (a string).
If the g (global) flag is not set in the regular expression declaration, this method replaces only the first
occurrence of the pattern . For example,
var s = "Hello. Regexps are fun." ;s = s.replace(/\./, "!" ); // replace first period with an exclamation pointalert(s) ;
produces the string “Hello! Regexps are fun.” Including the g flag will cause the interpreter to
perform a global replace, finding and replacing every matching substring. For example,
var s = "Hello. Regexps are fun." ;s = s.replace(/\./g, "!" ); // replace all periods with exclamation pointsalert(s);
yields this result: “Hello! Regexps are fun!”
So you can use the following methods:
string.replace(/reallyDo/g, replaceWith) ;
string.replace(new RegExp(reallyDo, 'g'), replaceWith);
string:StringExpressioncontains the Alternative substring.
reallyDo: The substring being searched.
replaceWith: Substring used for replacement.
Js code
<script type="text/javascript"> String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith); } else { return this.replace(reallyDo, replaceWith); } } </script>
The above is the detailed content of How to replace all specified characters in a string using js. For more information, please follow other related articles on the PHP Chinese website!