javascript - IndexOf 不适用于 ie 中的日期 tolocalestring,但 ie 支持它
问题描述
所以我有一些代码可以在其他浏览器上运行,但在 IE 中它不起作用。我可以通过将输出记录到浏览器来确认 indexOf 函数受支持并且正在工作,因为console.log('array.indexOf(2) = ' + array.indexOf(2));
代码在控制台中输出 0。
根据我的日志输出,其他值是正确的,一切看起来应该可以工作,但是 if 语句中的代码永远不会被命中。
我尝试了很多东西,我在代码中强调了这些东西,比如使用.toString()
and jQuery.inArray
anddaySetting[0].includes
console.log('daySetting[0] = ' + daySetting[0]);
console.log('new Date().toLocaleString("en-us", { weekday: "short" }) = ' + new Date().toLocaleString('en-us', { weekday: 'short' }));
console.log('daySetting[0].indexOf(new Date().toLocaleString("en-us", { weekday: "short" })) = ' + daySetting.indexOf(new Date().toLocaleString('en-us', { weekday: 'short' })));
var array = [2, 9, 9]; //test array
console.log('array.indexOf(2) = ' + array.indexOf(2));
if (daySetting[0].toString().indexOf(new Date().toLocaleString('en-us', { weekday: 'short' })) !== -1) {
//|| daySetting[0].includes(new Date().toLocaleString('en-us', { weekday: 'short' }))//tried the includes method and .toString() method
//if (jQuery.inArray(new Date().toLocaleString('en-us', { weekday: 'short' }), daySetting) != -1) {//tried jquery in array
console.log("dayHours = " + dayHours); //expecting this to be output
continue; //code is inside a loop
}
我希望看到将代码console.log("dayHours = " + dayHours);
记录到控制台,但事实并非如此。这在其他浏览器中运行良好,但我无法弄清楚发生了什么。
解决方案
问题不在于 indexOf。
new Date().toLocaleString('en-us', { weekday: 'short' }) 返回 'Thu' (length=4),在第 0 个索引中有一个空格。使用 substr(1) 避免了它。
var theHours = "Mon: Open 9am - 5:30pm, Tues: Open 9am - 5:30pm, Wed: Open 9am - 5:30pm, Thurs: Open 9am - 5:30pm, Fri: Open 9am - 5:30pm, Sat: Open 9am - 5pm, Sun: Open 11am - 5pm";
var days = theHours.split(',');
for (var i = 0; i < days.length; i++) {
var daySetting = days[i].split(/:(.+)/);
var dayHours = daySetting[1];
if (daySetting[0].indexOf(new Date().toLocaleString('en-us', { weekday: 'short' }).substr(1)) !== -1) {
console.log("dayHours = " + dayHours); //expecting this to be output
continue; //code is inside a loop
}
}
推荐阅读
- typescript - 在 TypeScript 中,如何使用位于另一个文件中的类
- ios - 如何通过 Web 服务将数据从我的应用程序插入到 BD?
- hyperledger-fabric - 如何配置网络以启用发现服务
- r - 如何停止 ggplot2 中显示的所有时间标签?
- javascript - 根据元素属性更改背景颜色的更好方法
- bash - Bash:在文件路径中使用别名
- swift - MacOS MapKit - 在点击的位置放置大头针
- c++ - 需要使用 shared_ptr 吗?
- javascript - 鼠标滚轮事件在 JointJS 中有抖动的缩放/缩放
- javascript - 用于替换多个 HTML 标记的正则表达式