在javascript中删除字符串中的空白字符

时间:2017-11-29 17:26:16

标签: javascript jquery

我有一个需要投射到日期的字符串。在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控制台中,则开发人员工具窗口会冻结....如果我在适当的位置从控件退格,它可以正常工作(大概是因为特殊字符不再存在)。如何搜索和删除此字符?

1 个答案:

答案 0 :(得分:1)

  

如何搜索和删除此字符?

您可以使用正则表达式。

以下内容将删除任何不是数字或/的内容:

&#13;
&#13;
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;
&#13;
&#13;

如果您想了解更多关于&#34;奇怪&#34;&#34;你可以循环遍历字符串的内容并将每个字符代码记录到控制台:

&#13;
&#13;
var str = "Hello!";
for (var i = 0, len = str.length; i < len; i++) {
  console.log(str.charAt(i) + ": " + str.charCodeAt(i));
}
&#13;
&#13;
&#13;