javascript - 如何获取给定字符串中第一个下划线和最后一个下划线之间的字符串?

标签 javascript jquery

我试图获取给定字符串中第一个和最后一个 _ 之间的字符串,但对我不起作用。请查看下表,其中包含输入 => 输出的示例:

gbox_asset_locations_list => asset_locations
gbox_company_list => company
gbox_country_states_cities_list => country_states_cities
string_company_1_string => company_1

我尝试过以下方法:

$(function() {
  var str = 'gbox_asset_locations_list';
  var result = str.substring(str.lastIndexOf('_') + 1, str.lastIndexOf('_'));
  
  $('body').append(str + ' => ' + result); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>

但是由于我没有得到正确的输出,所以无法工作,有人可以帮助我让它工作吗?我做错了什么?

最佳答案

使用正则表达式不是更容易吗?

$(function() {
  var str = 'gbox_asset_locations_list';
  var result = str.match(/_(.*)_/)[1];

  $('body').append(str + ' => ' + result); 
});

正则表达式匹配“首先是一个下划线,然后是尽可能多的任何类型的字符,然后是另一个下划线”。然后,您将“许多字符”作为结果。

关于javascript - 如何获取给定字符串中第一个下划线和最后一个下划线之间的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40423220/

相关文章:

javascript - D3.js 只是绘制一条垂直线而不是实际绘图

javascript - 如何为 HTML 表格设置固定行数?

Jquery如何更改具有相同类的三个 "div"的值

javascript - 删除没有文本 INPUT 值的 P 文本

jquery上传

javascript - TypeScript 异步迭代对象错误

javascript - 如何在页面刷新时保持单选按钮处于选中状态

javascript - 使用 Node 和请求模块编写 GET 请求

jquery - 只有第一个媒体查询有效

javascript - jquery 仅将鼠标悬停在一个 div 上,但为所有 div 定义