我的 angular 项目中有以下代码。 Chrome和Firefox运行良好,但在Safary原因和例外。
var shour = "9:00:00 PM CDT";
var ehour = "12:00:00 AM CDT";
var conver_shour = shour.match(/^(\d+):(\d+)/)[0] + shour.match(/[AP][M]$/)[0];
var conver_ehour = ehour.match(/^(\d+):(\d+)/)[0] + ehour.match(/[AP][M]$/)[0];
console.log("shour: " + conver_shour); // The answer should be 09:00PM
console.log("ehour: " + conver_ehour); // The answer should be 12:00AM
我尝试在 jsbin , plunkr 和 jsfiddle 上运行,但有些事情失败了,我看不出是什么原因。
这是例外 错误:null不是对象(评估'shour.match(/ [AP] [M] $ /)') $ EVAL @ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js:142:467 $适用@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js:143:193 https://cdnjs.cloudflare.com/ajax/libs/angular-ui-calendar/1.0.0/calendar.min.js:1:326 https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js:156:171
感谢任何帮助。感谢
答案 0 :(得分:1)
正则表达式:
/[AP][M]$/
希望在字符串的末尾找到AM
或PM
...但这些字符不会出现在字符串的末尾,因此match
会返回{{ 1}}。尝试执行null
会抛出异常。
您可能打算使用:
null[0]
/[AP]M/