2 jiannywang jiannywang 于 2016.09.17 14:48 提问

如何利用js提取文本中的日期

假如文本:str="2016-08-10周三21:47:29包裹正在等待揽收 2016-08-11周四15:52:09【连云港市】圆通速递 江苏省连云港市赣榆县收件员 已揽件 15:53:38【连云港市】江苏省连云港市赣榆县 已发出 20:18:10【淮安市】快件已到达 淮安转运中心 20:19:36【淮安市】淮安转运中心 已发出 ",
请问:使用js怎么将str中的日期都检索出来?谢谢

4个回答

showbo
showbo   Ds   Rxr 2016.09.17 17:34
已采纳

    str = "2016-08-10周三21:47:29包裹正在等待揽收 2016-08-11周四15:52:09【连云港市】圆通速递 江苏省连云港市赣榆县收件员 已揽件 15:53:38【连云港市】江苏省连云港市赣榆县 已发出 20:18:10【淮安市】快件已到达 淮安转运中心 20:19:36【淮安市】淮安转运中心 已发出 ";
    var datetime = [], date;
    str.replace(/((\d{4}(-\d{1,2}){2}).{2})?(\d{1,2}(:\d{1,2}){2})/g, function ($0, $1, $2, $3, $4) {
        if ($2 && $2 != date) date = $2;
        datetime.push(date + ' ' + $4);
    })
    alert(datetime.join('\n'))
jiannywang
jiannywang 太牛比了,测试了一下完全可行。而且我也几乎看不懂:)
大约一年之前 回复
My012_
My012_   2016.09.17 14:50

我认为你应该先把str转成json,然后就能提取了

jiannywang
jiannywang 回复My012_: 感谢你的回答。但是只能采纳一个人的,所以。。。
大约一年之前 回复
My012_
My012_ 回复jiannywang: var jsonstr=[{data:'2016-08-10周三21:47:29',kd:'圆通速递'},{data:'2016-08-10',kd:'圆通速递'}]; for(var i in jsonstr) alert(jsonstr[i].data);
大约一年之前 回复
My012_
My012_ 回复jiannywang: var jsonstr={data:'2016-08-10周三21:47:29',kd:'圆通速递'}; alert(jsonstr.data);
大约一年之前 回复
jiannywang
jiannywang 能不能帮着写个例子程序呢?谢谢。
大约一年之前 回复
jiannywang
jiannywang   2016.09.17 14:54

不懂json是啥,我来查查看。。

Marksinoberg
Marksinoberg   Ds   Rxr 2016.09.17 15:49

使用正则表达式不就可以了吗? 为什么要来回转换这么麻烦。

Csdn user default icon
上传中...
上传图片
插入图片