string.replace(“é”,“e”)不起作用
我有应该“清理”一个字符串的函数,我想使用replace()来做到这一点,但我不明白为什么下面的代码不工作时,文本来自输入[文本] 。
例如 :
console.log(getCleanText("ééé")); // works fine, it displays : eee
但
// my_id is an input with type="text"
var my_text = document.getElementById("my_id").value
console.log(getCleanText(my_text)); // doesn't work at all, it displays : ééé
该功能码是:
function getCleanText(some_text) {
var clean_text = some_text.toLowerCase();
clean_text = clean_text.replace("é", "e");
clean_text = clean_text.split("é").join("e"); // give it another try
return clean_text;
}
任何想法 ?
我认为元素值中的字符“é”与“é”常量不同。 为了解决这个问题,你可以看看输入的int值。
var inputEValue = document.getElementById("my_id").charCodeAt(0);
var constantEValue = "é".charCodeAt(0);
然后你将能够检测到你正在替换的字符。
如果您只想从文本中删除重音符号,请查看问题在JavaScript中删除字符串中的重音符号/变音符号
我敢打赌,你的问题在于对Unicode的误解。
é
é
以上两个字符是两个不同的字符。 第一个是字母e,带有重音字符(U + 0301)。 另一个是单个字符U + 00E9。
你需要确保你正在替换这两个版本。
尝试这个:
function getCleanText(old_string)
{
var new_string = old_string.toLowerCase();
return new_string.replace(/é/g, 'e');
}
埃德:被罗伯特殴打。 有关参考,请参阅此处:什么是扩展内置对象的有用的JavaScript方法?
链接地址: http://www.djcxy.com/p/94029.html上一篇: string.replace("é", "e") not working
下一篇: Convert UNIX Time to mm/dd/yy hh:mm (24 hour) in JavaScript