替换javascript字符串中的任何字符

时间:2018-06-16 14:19:55

标签: javascript regex

我想转换这个字符串:

string with characters like áéíóú

#################################

"parágrafo".replace(/\wW*/g, "#")会返回"###á#####"

5 个答案:

答案 0 :(得分:3)

一种选择是使用repeat()

let str = 'string with caracthers like áéíóú';

let result = "#".repeat(str.length);

console.log(result);

Doc:repeat()

答案 1 :(得分:1)

使用.repeat()的其他答案可能是更好的方法。这个答案主要用于解释代码的错误以及如何正确完成代码。

由于某些原因,

\w与重音字母不匹配,这就是á在输出中结束的原因。但即使这不是一个问题,它也不会匹配单词之间的空格。

您可以使用.,它匹配除换行符之外的任何字符。



console.log("string with caracthers like áéíóú`".replace(/./g, "#"));




如果您还想用#替换换行符,请添加s修饰符。



console.log(`string with caracthers like áéíóú
and also newlines`.replace(/./gs, "#"));




糟糕,这是ES2018中的一项新功能,尚未在所有浏览器中提供。您可以使用/.|\n.g来获得更好的可移植性。



console.log(`string with caracthers like áéíóú
and also newlines`.replace(/.|\n/g, "#"));




答案 2 :(得分:0)

"#".repeat("string with characters".length)

无需更换。

答案 3 :(得分:0)

repeat()无法在IE中使用,因此我建议循环到str长度以获取值为#的字符串。



let str = 'string with caracthers like áéíóú';
let result ='';
for(var i=0; i<str.length; i++){
  result += '#';
}
console.log(result);
&#13;
&#13;
&#13;

答案 4 :(得分:0)

看起来你的正则表达式在某个地方丢失了几个字符(并获得了*)。它应该是/[\w\W]/而不是:

var str = "parágrafo".replace(/[\w\W]/g, "#");

console.log(str);