Javascript一次str_replace很多
Javascript str_replace many at once
有没有直接的方法可以让一个字符在javascript中替换一个字符,只用一条指令替换每个字符,就像在PHP中一样?
我的意思是,像这样:
replace('áéíóú', 'aeiou');
这将 á 替换为 a,é 替换为 e,í 替换为 i,依此类推...
提前非常感谢,
将正则表达式与全局标志一起使用:
var map = {
"á": "a",
"é": "e",
"í": "i",
"ó": "o",
"ú": "u"
};
"áéíóú".replace(/[áéíóú]/g, function(m){
return map[m];
});
不是真的。试试这个:
var map = {'á': 'a', 'é': 'e', 'í': 'i', 'ó': 'o', 'ú': 'u'};
var result = 'áéíóú'.replace(/./g, function(m) { return map[m] ? map[m] : m; });
是的,你可以在 JavaScript 中做到这一点:
var str = "áéíóú";
var result = str.replace(/[áéíóú]/g, function(m) {
switch (m) {
case "á":
return "a";
case "é":
return "e";
case "í":
return "i";
case "ó":
return "o";
case "ú":
return "u";
}
});
另一种方法是查找表:
var replacements = {
"á": "a",
"é": "e",
"í": "i",
"ó": "o",
"ú": "u"
};
var str = "áéíóú";
var result = str.replace(/[áéíóú]/g, function(m) {
return replacements[m];
});
这些工作是因为replace
可以接受正则表达式,而"替换"可以是一个函数。该函数接收匹配的字符串作为参数。如果函数不返回任何内容,或返回undefined
,则保留原始内容;如果它返回其他内容,则改用该内容。正则表达式 /[áéíóú]/g
是一个"字符"类,意思是"这些字符中的任何一个",末尾的g
表示"全局"(整个字符串)。
相关文章:
- 替换变量时,JavaScript字符串replace()不起作用
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- 如何在做PHP时在base64中动态编码;preg_ replace”;
- 我使用了replace(“[^-A-Za-z0-9()%.],但它为'我可以解决这个错误吗
- 有很多图片的网站,只加载一些图片
- Regex Replace仅适用于Last Match
- toFixed and replace dons'这似乎奏效了
- d3.csv有很多数据,只画了一个月
- Replace()产生“;未捕获的类型错误:未定义的不是函数“;当与零一起使用时
- 调用replace()中的ajax函数
- 在AJAX中使用window.location.replace'成功'回调
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- 为什么我会得到错误“;未捕获的类型错误:st.replace不是函数;
- How can I get and replace this in javascript ( jquery?
- Replace a "href" element with javascript
- 字符串中的javascript replace()
- 当输入为变量时,.replace.不执行任何操作
- How to replace space with " "
- 使用Javascript.replace中的变量
- .replace 始终将字符放在第一个位置