替换javascript中的某些字符
Replacing certain characters in javascript
来自PHP背景,我有点被str_replace
函数宠坏了,你可以通过它传递一个haystack&针。
我还没有在Javascript中看到这样的函数,但我已经完成了这项工作,尽管很难看,代码如下:
return myString.replace(" ", "-").replace("&", ",");
然而,随着我越来越需要用另一个角色来替换某些角色,我相信有更好的方法来实现这一点——既有表演方面的,也有更漂亮的。
那么我该怎么办呢?
您可以使用这个:
var str = "How are you doing?";
var replace = new Array(" ", "['?]", "'!", "'%", "'&");
var by = new Array("-", "", "", "", "and");
for (var i=0; i<replace.length; i++) {
str = str.replace(new RegExp(replace[i], "g"), by[i]);
}
将其放入一个函数中:
function str_replace(replace, by, str) {
for (var i=0; i<replace.length; i++) {
str = str.replace(new RegExp(replace[i], "g"), by[i]);
}
return str;
}
用法示例fiddle:http://jsfiddle.net/rtLKr/
JavaScript的美妙之处在于,您可以扩展基类型的功能,从而可以将方法添加到String
本身:
// v --> array of finds
// s --> array of replaces
String.prototype.replaceAll = function(v, s){
var i , ret = this;
for(i=0;i<v.length;i++)
ret = ret.replace(v[i], s[i]);
return ret;
}
现在使用它:
alert("a b c d e f".replaceAll(["a", "b"], ["1", "2"])); //replaces a b with 1 2
演示在这里。
如果这对你来说更容易,你可能会喜欢这样的东西;
str.replace(/[ab]/g, function (match, i) {
switch (match) {
case "a":
return "A";
case "b":
return "B";
}
}));
即,在参数1中创建一个正则表达式,该表达式接受您要查找的所有令牌,然后在函数中添加case来进行替换。
下面是一些其他答案的组合。我只是喜欢它,因为替换的键值声明
function sanitize(str, replacements) {
var find;
for( find in replacements ) {
if( !replacements.hasOwnProperty(find) ) continue;
str = str.replace(new RegExp(find, 'g'), replacements[find]);
}
return str;
}
var test = "Odds & ends";
var replacements = {
" ": "-", // replace space with dash
"&": "," // replace ampersand with comma
// add more pairs here
};
cleanStr = sanitize(str, replacements);
PHP.js有一个函数可以解决您的问题:http://phpjs.org/functions/str_replace:527
相关文章:
- 使用JSON.parse时出现无效字符javascript错误
- 使用特殊字符 Javascript 对 URL 进行编码
- 如何替换不可打印的unicode字符(Javascript)
- 正则表达式密码允许特殊字符 JavaScript
- 正则表达式不允许特殊字符(Javascript)
- 如何删除字段中的字符 javascript
- 自动删除新字符 JavaScript
- 按下退格键时删除一组字符(Javascript)
- 获取某些字符 JavaScript 的所有可能组合
- 如何获取有关输入名称长度的字符 - javascript 的警报
- 当前字符JavaScript的RegExp
- 不允许使用除允许使用的字符javascript regex之外的特殊字符
- Regex,只允许一组特定的字符(Javascript)
- 缺少空白后的字符-javascript
- 输入只允许英文和非英文字符javascript
- 如何检查字符串是否有起始字符是特殊字符:javascript
- 正则表达式(regex): /W带连字符(javascript)
- 测试特殊字符JavaScript
- 密码-大写字符JavaScript
- 如何提取类型数字的最后字符javascript/jquery