繁体   English   中英

匹配方括号中的数字并得到剩余的字符串

[英]Match number in square brackets and get the remaining string

我有一个像下面这样的字符串

value[0]
  1. 我想检查字符串是否包含方括号。
  2. 如果是,则获取在上述情况下为0
  3. 获取不带括号和数字的字符串的其余部分,在上述情况下为value
var matches = this.key.match('/[([0-9]+)]/');  // 1 
if (null != matches) {
    var num = matches[1]; // 2
}

第三点如何实现?

您需要删除包装引号,并转义括号。

此外,您可以使用另一个 catch 组来获取字符串。 第一个 catch 组应该匹配任何不是括号的东西。 如果找不到匹配项,请使用回退数组,并使用解构来获取字符串和数字。 如果字符串/数字undefined则没有匹配项。

 var key = 'value[0]'; var [, str, number] = key.match(/([^\\[]+)\\[([0-9]+)\\]/) || []; console.log({ str, number });

使用另一个捕获组来获取方括号之前的字符串部分。

此外,不应引用正则表达式。

 var key = 'value[0]' var matches = key.match(/(\\w+)\\[([0-9]+)\\]/); if (null != matches) { var variable = matches[1]; var num = matches[2]; } console.log(`variable = ${variable}, index = ${num}`);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM