Javascript 匹配方括号中的数字并获取剩余字符串
我有一根像下面这样的线Javascript 匹配方括号中的数字并获取剩余字符串,javascript,regex,Javascript,Regex,我有一根像下面这样的线 value[0] 我想检查字符串是否包含方括号 如果是,则获取在上述情况下为0 获取不带括号和数字的字符串的其余部分,在上述情况下为value 如何实现第三点?您需要删除包装引号,并避开括号 此外,还可以使用另一个catch组来获取字符串。第一个捕捉组应与任何非括号的对象匹配。如果找不到匹配项,请使用回退数组,并使用destructuring获取字符串和数字。如果字符串/数字未定义则不匹配 var key='value[0]'; var[,str,number]=ke
value[0]
0
value
如何实现第三点?您需要删除包装引号,并避开括号 此外,还可以使用另一个catch组来获取字符串。第一个捕捉组应与任何非括号的对象匹配。如果找不到匹配项,请使用回退数组,并使用destructuring获取字符串和数字。如果字符串/数字
未定义
则不匹配
var key='value[0]';
var[,str,number]=key.match(/([^\[]+)\[([0-9]+)\]/)|【】;
log({str,number});
使用另一个捕获组获取方括号之前的字符串部分
此外,不应引用regexp
var key='value[0]'
var matches=key.match(/(\w+)\[([0-9]+)\]/);
如果(null!=匹配项){
var变量=匹配项[1];
var num=匹配项[2];
}
console.log(`variable=${variable},index=${num}`);
您需要转义方括号。您清楚地知道方括号有特殊的含义,因为您编写了专门使用它们的[0-9]
。这还不太清楚:1)方括号中可以有多个数字吗?2)那么预期的结果是什么/[([0-9]+)]/'定义正则表达式的方法在PHP中有效,而在JS中无效,[
和]
是特殊的,因此在需要匹配文字括号时需要转义。
var matches = this.key.match('/[([0-9]+)]/'); // 1
if (null != matches) {
var num = matches[1]; // 2
}