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

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

  •  
  •   jmyz0455 · Nov 24, 2016 · 3591 views
    This topic created in 3638 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
    fancy967
    Nov 24, 2016
    1
    没看懂你的意思,“第一个 & 后面不包含这个 & 的所有字符串”是指 第一个$后面的所有字符串,但是不以$开头是吗
    Yuguo
    Yuguo
    Nov 24, 2016
    2
    s.replace(/(.*?)&/,"")

    不用正则:

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

    JavaScript 如何截取字符串,得到第一个指定字符之后的字符串(不含该字符)?
    debiann
    debiann
    Nov 24, 2016 via iPhone
    6
    split slice join
    otakustay
    otakustay
    Nov 24, 2016
    7
    我的理解是 str.split('&')[1]就行了……
    wssgcg1213
    wssgcg1213
    Nov 24, 2016
    8
    `/&([^&]+)/`
    narrowei
    narrowei
    Nov 24, 2016
    9
    (?<=&)[^&]*
    这样吗?
    获取&后面的字符串,但是不包含这个&并且不含有后面一个&
    比如&2016/11/4&2016/11/6&
    得到的是 2016/11/4 和 2016/11/6
    SuujonH
    SuujonH
    Nov 24, 2016
    10
    split 不行么...
    jmyz0455
    jmyz0455
    OP
    Nov 24, 2016
    11
    @fancy967 是的,谢谢指出
    ywm8812
    ywm8812
    Nov 24, 2016
    12
    `&([^&]*)`
    DiamondbacK
    DiamondbacK
    Nov 24, 2016
    13
    虽然问题表述不完美,但是所给出的想要的输出结果已经足以说明楼主的意图了。认真看主帖的话,对题意应该不会有什么不明白。
    jeffjade
    jeffjade
    Nov 25, 2016
    14
    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   ·   Privacy   ·   Solana   ·   1092 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 18:19 · PVG 02:19 · LAX 10:19 · JFK 13:19
    ♥ Do have faith in what you're doing.