Javascript: 替换特殊字符代码 8222 失败
Javascript: Replace special character code 8222 fails
在德国,聪明的文本处理器喜欢将小引号放在单词的开头,大引号放在单词的结尾。所以你最终得到一个带有 unicode 8222 代码的文本并且 运行 .search(String.fromCharCode(8222)) 发现这个事件很好并且 String.fromCharCode(8222) 显示字符只是很好。
但是,现在它出现了问题 - 使用 fromCharCode 找到字符,我想下面的代码会将其替换为 space:
cSub.replace(/\String.fromCharCode(8222)/g, " ")
但是不行,这个也不行:
cSub.replace(/String.fromCharCode(8222)/g, " ")
在这两种情况下,返回的字符串都没有改变。我即将编写一个自己的替换例程,但我想那不应该是解决方案?
关于如何用 space 替换 8222 个字符有什么建议吗?
非常感谢
弗兰克
你不能那样使用正则表达式文字。尝试像这样创建一个 RegExp
:
const re = RegExp(`[${String.fromCharCode(8222)}${String.fromCharCode(8221)}]`, "g");
console.log(`Your RegExp ${re}`);
console.log(document.querySelector("div").textContent.replace(re, "!"));
<div>"Something „quoted”"</div>
您可以通过传递特定值来使用 replace
而无需正则表达式。
function start() {
var cId = "w3review";
var cTxt = document.getElementById(cId).value;
cSub = cTxt.replace(String.fromCharCode(8222), " ");
var iPos = cTxt.search(String.fromCharCode(8222));
document.getElementById("txtout").value = "Result: Character found at position " + iPos + ", result from replace: " + cSub;
}
<textarea id="w3review" rows="5" cols="40">
Source Value:
kennen. „Neurons that fire
</textarea>
<button onclick="start()">Click me</button>
<textarea id="txtout" rows="5" cols="40">
</textarea>
在德国,聪明的文本处理器喜欢将小引号放在单词的开头,大引号放在单词的结尾。所以你最终得到一个带有 unicode 8222 代码的文本并且 运行 .search(String.fromCharCode(8222)) 发现这个事件很好并且 String.fromCharCode(8222) 显示字符只是很好。
但是,现在它出现了问题 - 使用 fromCharCode 找到字符,我想下面的代码会将其替换为 space:
cSub.replace(/\String.fromCharCode(8222)/g, " ")
但是不行,这个也不行:
cSub.replace(/String.fromCharCode(8222)/g, " ")
在这两种情况下,返回的字符串都没有改变。我即将编写一个自己的替换例程,但我想那不应该是解决方案?
关于如何用 space 替换 8222 个字符有什么建议吗?
非常感谢
弗兰克
你不能那样使用正则表达式文字。尝试像这样创建一个 RegExp
:
const re = RegExp(`[${String.fromCharCode(8222)}${String.fromCharCode(8221)}]`, "g");
console.log(`Your RegExp ${re}`);
console.log(document.querySelector("div").textContent.replace(re, "!"));
<div>"Something „quoted”"</div>
您可以通过传递特定值来使用 replace
而无需正则表达式。
function start() {
var cId = "w3review";
var cTxt = document.getElementById(cId).value;
cSub = cTxt.replace(String.fromCharCode(8222), " ");
var iPos = cTxt.search(String.fromCharCode(8222));
document.getElementById("txtout").value = "Result: Character found at position " + iPos + ", result from replace: " + cSub;
}
<textarea id="w3review" rows="5" cols="40">
Source Value:
kennen. „Neurons that fire
</textarea>
<button onclick="start()">Click me</button>
<textarea id="txtout" rows="5" cols="40">
</textarea>