需要正则表达式来查找输入名称javascript的最后一部分
我有以下输入名称:需要正则表达式来查找输入名称javascript的最后一部分,javascript,regex,Javascript,Regex,我有以下输入名称: fw_options[testgradient][background-gradient-start-color] 我需要得到名字的最后一部分: background-gradient-start-color 我能用这个乱七八糟的代码做到这一点: name.replace('][','-').replace(/^[^-]*-/,'').replace(']','').replace('[',''); 但是,我忘记了名称也可以是这样的: fw_options[header
fw_options[testgradient][background-gradient-start-color]
我需要得到名字的最后一部分:
background-gradient-start-color
我能用这个乱七八糟的代码做到这一点:
name.replace('][','-').replace(/^[^-]*-/,'').replace(']','').replace('[','');
但是,我忘记了名称也可以是这样的:
fw_options[header_boxstyle][background][background-gradient-start-color]
因此,我最终得到了错误的字符串:
backgroundbackground-gradient-start-color
有没有人能帮我简化一下,这样我就不必使用多个替换
我需要在不匹配背景渐变开始颜色的情况下获得最后一部分,因为我需要使用同一正则表达式查找多个名称。您可以使用正则表达式和捕获组提取该名称:
\[([^\]]*)\]$
看
该值将位于组1中
var re=/\[([^\]]*)\]$/g;
var str='fw_选项[testgradient][背景渐变开始颜色];
如果((m=re.exec(str))!==null){
document.getElementById(“res”).innerHTML=m[1];
}
您还可以使用其他技巧:
var输入='fw_选项[testgradient][背景渐变开始颜色];
alert(input.replace(/\]/g.)).split(/\[/g).pop());
我很乐意。另外,为了完整性,我添加了一个非正则表达式方法。