我得到以下字符串


  var intNote =“ 08.03.2018 09:53:37-Mustermann,Max(工作笔记)内部工作笔记”


我通过以下方式进行操作:

        var tempArr = intNote.split('-');
        var tempArr2 = tempArr[1].split('(Work notes)');

        internalDate = tempArr[0]; // >> 08.03.2018 09:53:37
        internalName = tempArr2[0]; // >> Mustermann, Max
        internalNote = tempArr2[1]; // >> Work note internal


例如,当我有以下字符串时


  var intNote =“ 08.03.2018 09:53:37-Mustermann,Max(工作笔记)
  注意-内部”


我得到结果

internalNote = tempArr2[1]; // >> Work note


我知道“问题”是运算符.split('-')。我如何定义它以仅在第一个给定的“-”处分割结果

internalNote = tempArr2[1]; // >> Work note - internal

最佳答案

或者,您可以一直使用正则表达式。

/([^-]*)-(.*)\(Work notes\)(.*)/


将为您提供三个捕获组(编号1-3)以及您要使用的字符串。



var intNote1 = "08.03.2018 09:53:37 - Mustermann, Max (Work notes) Work note internal",
    intNote2 = "08.03.2018 09:53:37 - Mustermann, Max (Work notes) Work note - internal",
    re = /([^-]*)-(.*)\(Work notes\)(.*)/,
    arr;

arr=re.exec(intNote1);
arr.shift();            // Remove index 0 (full match)
document.write('<br/>1:' + intNote1 + '<br/>' + arr.join('<br/>'));

arr=re.exec(intNote2);
arr.shift();            // Remove index 0 (full match)
document.write('<br/><br/>2:' + intNote2 + '<br/>' + arr.join('<br/>'));

09-27 12:02