javascript - jQuery.html() 在 IE 中出现乱码

标签 javascript jquery internet-explorer character-encoding keycode

我正在使用 jQuery("#shipdata").html() 函数来获取元素的 html 内容,它应该返回一个日期字符串,例如 '5/14/2014' .它在 Chrome、Firefox 和 Safari 中完美运行。但是在 Internet Explorer 中,它会返回一些奇怪的东西:

我试图提醒返回字符串的长度,它显示“14”,应该是“9”。

我也试过提示每个字符的keycode,发现不仅在字符串的开头,而且在字符'/'之前和之后都添加了“8206”的keycode。

如何去掉那些乱码?

最佳答案

字符 8206,或 \u200E,它是“从左到右的标记”字符。它主要用于双向文本,表示“这部分”应该是从左到右的。

根据语言环境,IE 可能会插入这些标记以确保正确呈现日期。例如,如果您使用的计算机设置为从右到左的语言,则它可能会使用这些标记来协助呈现。

虽然我不知道是什么原因造成的,但无论如何您都应该清理输入,例如在空格的情况下。

<div id="shipdata">
    5/12/2014
</div>

以上内容也会导致您的代码失败。所以,试试这个:

jQuery('#shipdata').html().replace(/[^0-9\/]/g,'');

关于javascript - jQuery.html() 在 IE 中出现乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23566069/

相关文章:

javascript - Prop 的条件渲染(无需重新渲染)

javascript - 如何防止用户输入错误时出现 'UnhandledPromiseRejection'?

jquery - 根据选择更改背景图像

javascript - 带有 Bootstrap 工具提示的图像 map 未显示在正确的位置

css - 在 IE 中对齐

html - 使用嵌入式svg时如何避免HTML1500 Tag在IE中无法自关闭警告?

javascript - 如何将表搜索限制为列中包含特定文本的特定行

javascript - startAngle 在 HTML5 canvas 椭圆中意味着什么?

jQuery FullCalendar - 尝试添加事件并在日历上显示失败

javascript - 表单重置后,js checkValidity() 不再正常运行