【问题标题】:regex to match ALL characters up to a certain marker正则表达式匹配所有字符直到某个标记
【发布时间】:2015-07-18 09:43:17
【问题描述】:

我正在尝试编写一个正则表达式来匹配所有字符到 '/' 我当前的正则表达式只匹配字符串的第一个字符

var regex = /[^\/]/
regex.exec("something/15")

这会给我's'。我也试过了

var regex = /.*[^\/]/

但它返回整个字符串,不以'/'分隔。我也看过其他 SO 帖子。

Javascript regular expression: match anything up until something (if there it exists)

【问题讨论】:

  • 为什么不使用'First value/second value'.split('/')[0]

标签: javascript regex


【解决方案1】:

虽然这可以通过 RegEx 来完成,但我建议使用 String.split() 来完成。

我想您可能还想要斜杠后面的文本,因此拆分可以让您更轻松地访问它

var str = 'First value/second value';
document.getElementById('output').innerHTML = str.split('/')[0];
<div id="output"></div>

【讨论】:

    【解决方案2】:

    您需要使用起始锚点和量词* 匹配0 个或多个字符,直到找到/

    var regex = /^[^\/]*/
    

    【讨论】:

    • 您能解释一下起始锚点的作用以及为什么 * 出现在排除条款之后吗?我原以为你会从头到尾构建模式。
    • 起始锚^是输入的开始,量词*是匹配/之前的0个或多个字符
    • @user137717 根据您的情况,您可能希望 /^[^/]+/+ 匹配 一个 或多个 代替 *匹配 或更多。
    • @StephenP 好叫 Stephen P。我得到了一些空字符串并使用了 if 语句来解决问题,但这很高兴知道。
    • 如果成功,您可以通过单击我的答案左上角的勾号将答案标记为已接受。
    猜你喜欢
    • 2012-05-09
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2019-04-21
    • 2017-09-02
    • 1970-01-01
    • 2011-09-26
    相关资源
    最近更新 更多