获取“ - ”之间的字符串

时间:2015-07-16 05:40:48

标签: javascript regex

我有这个字符串:2015-07-023。我想从这个字符串中获取07

我像这样使用RegExp

var regExp = /\(([^)]+-)\)/;
var matches = regExp.exec(id);
console.log(matches);

但我得null作为输出。

如何正确配置RegExp,我们对此表示赞赏。

3 个答案:

答案 0 :(得分:6)

最好的方法是根本不使用RegEx,你可以使用常规的JavaScript字符串方法:

var id_parts = id.split('-');
alert(id_parts[1]);

JavaScript字符串方法通常比RegEx更好,因为它更快,而且更直接和可读。任何程序员都可以阅读此代码并快速知道是将字符串拆分为id的部分,然后将项目放在索引1

答案 1 :(得分:4)

如果您需要regex,可以使用以下regex。否则,最好使用@ {vihan1086的答案中的string方法。

var str = '2015-07-023';
var matches = str.match(/-(\d+)-/)[1];

document.write(matches);

正则表达式解释

  1. -:匹配- literal
  2. ():捕获小组
  3. \d+:匹配一个或多个数字
  4. 正则表达式可视化

    Visualization

    修改

    如果所需子字符串的长度是固定的,您也可以使用substr

    var str = '2015-07-023';
    
    var newStr = str.substr(str.indexOf('-') + 1, 2);
    
    document.write(newStr);

答案 2 :(得分:0)

您可以尝试使用以下正向前瞻性正则表达式。

var string = "2015-07-02";
alert(string.match(/[^-]+(?=-[^-]*$)/))