我有一个非常非常长的字符串,其中包含mushr0om
,mong0lian
,c0rn
等字词。我想将0
替换为{{1} }}的。我知道o
可能会有效,但在同一个字符串中,它还包含input.replace('0', 'o')
,70
,100
等数字,我不希望{{1}影响它们的方法。我可以使用正则表达式来执行此操作吗?
答案 0 :(得分:2)
var string = "mushr0om 70 bl00m 102"
var cleanString = string.split(' ').map((word)=>{
if(! /^\d+$/.test(word) ){ return word.replace(/0/g,'o')}
return word
}).join(' ')
console.log(cleanString);
答案 1 :(得分:1)
您可以为每个角色检查(上一个和下一个角色)。如果一个字符是一个数字,那么检查它是否是上一个。或下一个字符是非数字。如果有任何上一个。或者下一个字符是非数字然后替换。
答案 2 :(得分:1)
我认为您要替换前一个字母不是数字的所有“0”以及下一个字母而不是数字。
将字符串拆分为char数组,然后替换所需的字符。
et.setText(new StringBuilder(et.getText().trim()).append("1"));
答案 3 :(得分:1)
如果我理解,您只需要替换字符之间发生的0
而不是实际数字中的0
,例如900
。正则表达式下面创建三个组,两个用于字符,零夹在它们之间。然后我们使用$1
选择第一组(0之前的字符),使用$3
选择第二组(0之后)。 0
替换为o
。
var str = "mushr0om, mong0lian, c0rn - 700 hello909";
var str1 = str.replace(/([a-zA-Z])(0)([a-zA-Z])/ig, "$1o$3");
document.getElementById("dvOne").innerText = str1;
div {
padding: 25px;
color: red;
font-size: 16px;
}
<div id="dvOne">
</div>