如何获得前面有“”的字符;add_”;
How to get the characters preceded by "add_"
我有一个字符串"add_dinner"、"add_meeting"answers"add_fuel_surcharge",我想得到前面有"add_"(晚餐、会议、fuel_surcharce)的字符。
[^a][^d]{2}[^_]'w+
我试过这个,但它只适用于"add_dinner"
[^add_]'w+
这个适用于"add_fuel_surcharge",但从"add_dinner"中取"inner"
请帮我理解。
使用捕获组:
/^add_('w+)$/
检查返回的数组以查看结果。
由于JavaScript不支持后备断言,因此需要使用一个捕获组:
var myregexp = /add_('w+)/;
var match = myregexp.exec(subject);
if (match != null) {
result = match[1];
}
[^add_]
是与除a
、d
或_
之外的单个字符匹配的字符类。当应用于add_dinner
时,它匹配的第一个字符是i
,然后'w+
匹配nner
。
[^...]
构造匹配除列出的字符之外的任何单个字符。因此[^add_]
匹配除"a"、"d"或"_"之外的任何单个字符。
如果你想在_
之后检索比特,你可以这样做:
/add_('w+_)/
其中括号"捕获"了表达式内部的部分。因此,要从字符串中获取实际文本:
var s = "add_meeting";
var result = s.match(/add_('w+)/)[1];
这假设字符串将匹配,这样您就可以直接获得返回数组中的第二个元素,该元素将是匹配('w+)
的"会议"部分。
如果您可能要测试一个不匹配的字符串,则需要测试match()
的结果是否为空。
(或者,可能更容易理解:result = "add_meeting".split("_")[1];
)
您可以通过JavaScript for loop
、过滤_
字符串
var str = ['add_dinner', 'add_meeting', 'add_fuel_surcharge'];
var filterString = [];
for(var i = 0; i < str.length; i ++){
if(str[i].indexOf("_")>-1){
filterString.push(str[i].substring(str[i].indexOf("_") + 1, str[i].length));
}
}
alert(filterString.join(", "));
相关文章:
- 如何在下面的ES6循环中获得前面的文本
- 我可以获得相对于被点击元素的确切点击位置吗
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 当我点击jsf中的primefaces命令按钮时,如何获得点击事件
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- 如何在javascript中获得与特定数字相等的随机数
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 我怎样才能获得承诺的价值
- 检查元素是如何获得焦点的
- javascript处理一个对象数组以获得一个新的对象数组
- 如何更改<选择>使用angularJS从控制器获得的值
- Highcharts-如何在自定义格式化程序中获得默认的y轴标签格式化程序
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 有没有一种方法可以获得three.js的最小/lite版本
- 如何获得随机灯光颜色
- JavaScript,JQuery.需要帮助才能获得'name'从我的JSON中删除
- 如何通过单击html按钮获得h1的文本值