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