如何用 [/ -] 拆分数据

How split data with [/ -]

我需要拆分表示日期的字符串。此日期以 dd/mm/yyyydd-mm-yyyy 的方式表示。

我的代码是(当前字符串格式为mm/dd/yyyy):

<input type="data" id="dat">
.....
var dataString=$('#dat').val();
    dataString=dataString.split('/ -');
    //now I can try to print years so
    console.log(dataString[2]);

程序打印我 "undefined"。有谁可以帮忙pe吗?

因为你的数组dataString的第一个索引是0

所以代码应该是:

dataString=dataString.split('/ -');
//now I can try to print years so
console.log(dataString[1]);

注意数组的索引是 1 而不是 2 ;)

我认为您的拆分方法应该如下所示:

dataString=dataString.split('/');  

  <input type="data" id="dat">
.....
var dataString=$('#dat').val();
    dataString=dataString.split('/ **-**'); - without this
    //now I can try to print years so
    console.log(dataString[2]);

试试这个,它适用于两种格式。首先,我将“-”替换为“/”,以便我们获得相同格式的日期(dd/mm/yyyy)然后拆分。

 $(function(){
    var dataString=$('#dat').val();
    dataString=dataString.replace('-','/').split('/');
    alert(dataString[2])
  })

正确拆分dd/mm/yyyydd-mm-yyyy的方法是使用这个RegExp拆分:

.split(/\/|-/g)

  • / 意思是,打开正则表达式
  • \/ 表示被 / 字符分割(转义 \ 用于不关闭表达式)。
  • | 均值或
  • - 表示按 - 个字符拆分。
  • / 表示,正则表达式结束
  • g 是一个拆分所有这些字符的选项,而不仅仅是第一个字符。

所以在你的例子中:

var dataString = $('#dat').val(); // `dd/mm/yyyy` or `dd-mm-yyyy`
    dataString = dataString.split(/\/|-/g); // [dd, mm, yyyy]
console.log(dataString[2]);

几个日期的正则表达式示例:

alert("12-12-2012".split(/\/|-/g)); // [12, 12, 2012]
alert("12/12/2012".split(/\/|-/g)); // [12, 12, 2012]
alert("12-12/2012".split(/\/|-/g)); // [12, 12, 2012]