[英]Replace any character in a javascript string
我要转换此字符串:
string with characters like áéíóú
至
#################################
此"parágrafo".replace(/\\wW*/g, "#")
返回"###á#####"
一种选择是使用repeat()
let str = 'string with caracthers like áéíóú'; let result = "#".repeat(str.length); console.log(result);
Doc: repeat()
使用.repeat()
的其他答案可能是执行此操作的更好方法。 该答案主要用于解释您的代码出了什么问题以及如何正确完成。
\\w
由于某些原因与重音字母不匹配,这就是á
最终出现在输出中的原因。 但是,即使这不是问题,也不会匹配单词之间的空格。
您可以使用.
,它匹配除换行符以外的任何字符。
console.log("string with caracthers like áéíóú`".replace(/./g, "#"));
如果您还想用#
替换换行符,请添加s
修饰符。
console.log(`string with caracthers like áéíóú and also newlines`.replace(/./gs, "#"));
糟糕,这是ES2018中的一项非常新功能,并非在所有浏览器中都可用。 您可以使用/.|\\ng
以获得更好的可移植性。
console.log(`string with caracthers like áéíóú and also newlines`.replace(/.|\\n/g, "#"));
"#".repeat("string with characters".length)
无需更换。
不能在IE中使用repeat()
,所以我建议循环到str
长度以获取带有值#
字符串。
let str = 'string with caracthers like áéíóú'; let result =''; for(var i=0; i<str.length; i++){ result += '#'; } console.log(result);
看起来您的正则表达式在某处丢失了几个字符(并获得了*
)。 应该是/[\\w\\W]/
:
var str = "parágrafo".replace(/[\\w\\W]/g, "#"); console.log(str);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.