推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
jmyz0455

Javascript 如何截取字符串中,第一个指定字符后面不包含这个字符的所有字符?

  •  
  •   jmyz0455 · Nov 24, 2016 · 3259 views
    This topic created in 3477 days ago, the information mentioned may be changed or developed.

    有如下数据:

    2016/11/1&2016/11/2&2016/11/4&2016/11/6&2016/11/8&2016/11/10&2016/11/12&2016/11/14&2016/11/9

    在实际环境中,每段 yyyy/mm/dd 的长度是不确定的,可能还会夹杂一些数据,这里只是简单的例子。现在要匹配出:

    2016/11/2&2016/11/4&2016/11/6&2016/11/8&2016/11/10&2016/11/12&2016/11/14&2016/11/9

    如何用正则表达式匹配出“第一个 & 后面不包含这个 & 的所有字符串”?

    PS :用什么原生的方法能不用正则也能达到同样效果?

    Supplement 1  ·  Nov 24, 2016
    抱歉,表达不清晰,谢谢各位指出和解答,问题的正确描述就是 @Yuguo 说的:
    如何截取字符串,得到第一个指定字符之后的字符串(不含该字符)?
    14 replies    2016-11-25 22:06:09 +08:00
    fancy967
        1
    fancy967  
       Nov 24, 2016
    没看懂你的意思,“第一个 & 后面不包含这个 & 的所有字符串”是指 第一个$后面的所有字符串,但是不以$开头是吗
    Yuguo
        2
    Yuguo  
       Nov 24, 2016
    s.replace(/(.*?)&/,"")

    不用正则:

    let index = s.indexOf('&');
    s = s.substr(index+1);
    muziki
        3
    muziki  
       Nov 24, 2016 via iPhone
    你这匹配出来的难道不是偶数?
    wodertian
        4
    wodertian  
       Nov 24, 2016
    str.substr(str.indexOf("&")).replace(/&/g,"") 这种效果?
    Yuguo
        5
    Yuguo  
       Nov 24, 2016
    楼主表达不清楚,我猜测可能意思是:

    JavaScript 如何截取字符串,得到第一个指定字符之后的字符串(不含该字符)?
    debiann
        6
    debiann  
       Nov 24, 2016 via iPhone
    split slice join
    otakustay
        7
    otakustay  
       Nov 24, 2016
    我的理解是 str.split('&')[1]就行了……
    wssgcg1213
        8
    wssgcg1213  
       Nov 24, 2016
    `/&([^&]+)/`
    narrowei
        9
    narrowei  
       Nov 24, 2016
    (?<=&)[^&]*
    这样吗?
    获取&后面的字符串,但是不包含这个&并且不含有后面一个&
    比如&2016/11/4&2016/11/6&
    得到的是 2016/11/4 和 2016/11/6
    SuujonH
        10
    SuujonH  
       Nov 24, 2016
    split 不行么...
    jmyz0455
        11
    jmyz0455  
    OP
       Nov 24, 2016
    @fancy967 是的,谢谢指出
    ywm8812
        12
    ywm8812  
       Nov 24, 2016
    `&([^&]*)`
    DiamondbacK
        13
    DiamondbacK  
       Nov 24, 2016
    虽然问题表述不完美,但是所给出的想要的输出结果已经足以说明楼主的意图了。认真看主帖的话,对题意应该不会有什么不明白。
    jeffjade
        14
    jeffjade  
       Nov 25, 2016
    let "2016/11/1&2016/11/2&2016/11/4&2016/11/6&2016/11/8&2016/11/10&2016/11/12&2016/11/14&2016/11/9"

    let tempArr = str.split("&")

    tempArr.splice(0,1)

    let result = tempArr.join('&')



    http://www.jeffjade.com/2016/11/24/116-JavaScript-string-operation/
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1261 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 17:37 · PVG 01:37 · LAX 10:37 · JFK 13:37
    ♥ Do have faith in what you're doing.