需要正则表达式找到输入名称javascript的最后一部分
Need regex to find last part of input name javascript
我有以下输入名称:
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
有人能帮我简化一下吗,这样我就不用多次替换了?
我需要得到最后一部分不匹配background-gradient-start-color
字面上,因为我有多个名字,我需要找到相同的正则表达式。
您可以使用正则表达式和捕获组提取它:
'[([^']]*)']$
看到演示
该值将属于第1组。
var re = /'[([^']]*)']$/g;
var str = 'fw_options[testgradient][background-gradient-start-color]';
if ((m = re.exec(str)) !== null) {
document.getElementById("res").innerHTML = m[1];
}
<div id="res"/>
或lastIndexOf
的非正则表达式方式(粗糙,没有错误检查):
var str = "fw_options[testgradient][background-gradient-start-color]";
var ido = str.lastIndexOf("[");
var idc = str.lastIndexOf("]");
alert(str.substring(ido+1,idc));
您还可以使用其他技巧:
var input = 'fw_options[testgradient][background-gradient-start-color]';
alert(input.replace(/']/g, '').split(/'[/g).pop());
相关文章:
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 在JavaScript中重构上个月的第一天和最后一天的代码(node.js)
- 如何使用JavaScript forloop从JSON中删除最后一个逗号
- Javascript:删除冒号的最后一个字符
- Javascript/jQuery替换tamil语言输入框中的最后一个单词
- 使用javascript替换字符串中除第一个和最后一个之外的所有字符
- Javascript匹配以从URL中删除部分文件名-替换最后一次出现的内容
- 使用VBScript或Javascript从文本框(文本区域)中删除最后一行空/空行
- 从数组JavaScript中删除并返回最后n个项的最快方法
- jQuery/Javascript>on单击将文本放置在最后一个已知的光标位置
- 如何使用javascript获取最后一个全天时间戳
- 在Javascript中截断一个字符串,混淆了最后两个测试字符串
- JavaScript只有在最后一次被调用时才运行函数
- ..的Javascript..循环中的对象没有在最后一个属性上运行
- JavaScript 不会替换字符串的最后一个符号
- JavaScript,数组和函数 - 只有数组的最后一个元素有效
- Javascript最后一封信被切断
- Javascript最后if语句总是读取
- 我怎么能强迫某些字符串在javascript最后排序
- 如何获得Javascript最后修改日期