Aar*_*ron 8 javascript microsoft-edge
我无法理解一些似乎在Edge中表现不同的JavaScript正在发生的事情.特别把它煮成:
var testi = new Date().toLocaleTimeString();
var len2 = testi.length;
alert(len2);
Run Code Online (Sandbox Code Playgroud)
我在Edge中的长度是17,在Chrome和IE中它是10在字符串中似乎有一些幻像空间,它也搞砸了我试图将其子串起来.
https://jsfiddle.net/m1m8h7ym/
仅供参考我的时区是美国中部.
Thr*_*gle 13
看起来微软正在以无形的从左到右的标记滑倒.这也发生在边缘模式下的IE11中.我通过循环遍历字符串中的每个字符并将其传递给我来解决这个问题encodeURIComponent()
var output = document.getElementById("output");
var testi = new Date().toLocaleTimeString();
var row;
for (var i = 0, len = testi.length; i < len; i++) {
row = document.createElement("pre");
row.innerHTML = encodeURIComponent(testi[i]);
output.appendChild(row);
}Run Code Online (Sandbox Code Playgroud)
<div id="output"></div>Run Code Online (Sandbox Code Playgroud)
您可以通过其unicode删除它来删除它,可以通过表达式在正则表达式中捕获它\u200E.
var output = document.getElementById("output");
var testi = new Date().toLocaleTimeString().replace(/\u200E/g,"");
var row;
for (var i = 0, len = testi.length; i < len; i++) {
row = document.createElement("pre");
row.innerHTML = encodeURIComponent(testi[i]);
output.appendChild(row);
}Run Code Online (Sandbox Code Playgroud)
<div id="output"></div>Run Code Online (Sandbox Code Playgroud)