使用Date.parse();从动态文本中删除(或允许)序数字符;
Removing (or allowing) ordinal characters from dynamic text with Date.parse();
我正在构建一个自贬值的日期列表,并使用Date.parse()
将富文本转换为时间戳。现在,我们有一个系统,用户自己输入日期,我在后端使用令牌将其拉到特定页面。
我试图"保护用户"不输入错误的日期格式。
目前,如果他们输入January 12th, 2016
,由于th
,它将无法解析和创建时间戳。但是,如果他们输入January 12, 2016
,它可以创建一个时间戳。
有没有办法替换动态字符串上的这些序数?我尝试了一个简单的jquery查找/替换,但没有成功地用它来删除序号日期文本。
我尝试过的:
$('.my-button').each(function() {
console.log($(this).text());
var text = $(this).text().replace('st, ', '');
$(this).text(text);
});
关于解决方案,或者让Date.parse():
接受这些额外字符的方法,有什么想法吗?
对于从日期字符串(如"2016年1月12日")中删除序数的简单情况,可以使用正则表达式,如:
var re = /('d{1,2})[a-z]{2}'b/i;
['January 12th, 2016','January 1st, 2016','January 2nd, 2016','20th February, 2015'].forEach(
function(s) {
document.write('<br>' + s.replace(re,'$1'));
}
);
但是,强烈建议不要使用Date.parse(和Date构造函数,它们相当于解析)解析字符串。使用解析器并定义格式,不要听之任之。
有像moment.js这样的库,但是对于您的需求来说,它可能太大了。还有其他专用的解析器(请查看GitHub),或者如果您只需要支持一种格式,请自己编写一种。它只需要三四行代码。
相关文章:
- angularjs删除动态形式元素中的特殊字符
- 拼接未删除某些字符
- 删除图形和数字之间的连字符(-)符号
- 删除单引号字符转义
- 用于在Javascript中删除多个空格的特殊字符
- 如何删除“;反向字符顺序“;作用
- Javascript:删除冒号的最后一个字符
- 为什么以下正则表达式不删除 ## 字符
- 如何从拼音编辑器中删除特殊字符
- 如何在单击时从输入字段中删除最后一个字符
- 使用jquery删除href中的特定字符或标记
- 如何删除“"使用javascript从字符串中提取字符
- 如何删除用Range.setStart/setEnd选择的字符
- 为什么jQuery正在删除文本的最后一个字符
- jQuery:从数据属性中删除除前4个字符外的所有字符
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- 如何删除↵JS字符串中的字符
- 用于删除字符串中字符开头到结尾的正则表达式
- Javascript选项卡字符删除
- 逐个字符删除