我有一个需要投射到日期的字符串。在IE中,我的字符串中包含一个未知字符,并且在我投射时它表示无效日期。
当我跑步时
var dateString = $('#DueDate').val()
for(var i = 0; i < dateString.length; i++){console.log(dateString[i]);}
这是输出:
// empty line that I can't format in Stack overflow correctly
0
1
/
0
1
/
2
0
1
2
dateString.length
输出15
。这些字符不能为空格,因为dateString.valueOf()
会输出"01/01/2012"
此外,如果我将这些特殊字符应该从控件本身复制并粘贴到IE控制台中,则开发人员工具窗口会冻结....如果我在适当的位置从控件退格,它可以正常工作(大概是因为特殊字符不再存在)。如何搜索和删除此字符?
答案 0 :(得分:1)
如何搜索和删除此字符?
您可以使用正则表达式。
以下内容将删除任何不是数字或/
的内容:
var dateString = '12___/15___/20_17_xxx'; // Poorly-formatted date string
dateString = dateString.replace(/[^0-9/]/g, ""); // 12/15/2017
var date = new Date(dateString); // Cast as date
console.log(date); // 2017-12-15T05:00:00.000Z
&#13;
如果您想了解更多关于&#34;奇怪&#34;&#34;你可以循环遍历字符串的内容并将每个字符代码记录到控制台:
var str = "Hello!";
for (var i = 0, len = str.length; i < len; i++) {
console.log(str.charAt(i) + ": " + str.charCodeAt(i));
}
&#13;