【问题标题】:JavaScript get string between two identical strings? [duplicate]JavaScript在两个相同的字符串之间获取字符串? [复制]
【发布时间】:2020-04-11 13:04:40
【问题描述】:

我正在尝试提取字符串的两个不同部分之间的字符串,但遇到了问题。这是我正在使用的字符串:

onclick="functionName(1816, 1718, 0);"

我试图提取的字符串部分是“1718”,即函数的第二个参数。我试过这样做:

$(this).attr('onclick').substring($(this).attr('onclick').lastIndexOf(", ") + 1, $(this).attr('onclick').lastIndexOf(", "));

这会获取 onclick 值,并且应该提取“,”和“,”之间的内容,但它没有这样做,它输出“,”。

感谢您对此的任何意见!

【问题讨论】:

  • 这个问题在 Stack Overflow 中以多种不同的形式出现。 This search 找到其中几个。更多关于搜索here。但话虽如此:JavaScript 代码不能用像 indexOf 或单个正则表达式这样的幼稚方法正确解析。如果您需要解析 JavaScript 代码,请使用 JavaScript 解析器。有几个免费的,比如Esprima

标签: javascript string substring


【解决方案1】:

如果你知道它总是中间的“参数”,这对你有用:

let onclick = "functionName(1816, 1718, 0);"
console.log(onclick.split(',')[1].trim());

【讨论】:

    【解决方案2】:

    你可以在逗号之间匹配想要的部分。

    var string = 'onclick="functionName(1816, 1718, 0);"',
        part = string.match(/,\s*([^,]+),/)?.[1];
    
    console.log(part);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 2012-12-28
      • 2013-09-14
      • 1970-01-01
      • 2022-12-13
      相关资源
      最近更新 更多