我有多个下拉菜单,每个下拉菜单都有不同的字段名称,这些名称会递增。
我的目标是在对下拉列表进行任何更改后获取字符串/文本的中间部分。我想获取中间的数字,即 111
。
rank_item[111][rank]
HTML
<select class="rank" name="rank_item[0][rank]">
<option value="0">-Select Your Rank-</option>
<option value="1">Airman</option>
<option value="2">Senior Airman</option>
</select>
<br>
<br>
<select class="rank" name="rank_item[1][rank]">
<option value="0">-Select Your Rank-</option>
<option value="1">Airman</option>
<option value="2">Senior Airman</option>
</select>
JS
$(document).ready(function() {
$(document).on('change keyup', '.rank', function() {
console.log($(this).attr('name'))
})
});
最佳答案
使用正则表达式提取]
前的数字:
const num = this.name.match(/\d+(?=\])/)[0];
\d
- 匹配数字(?=\])
- 直到下一个字符是]
$(document).on('change keyup', '.rank', function() {
const num = this.name.match(/\d+(?=\])/)[0];
console.log(num)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="rank" name="rank_item[0][rank]">
<option value="0">-Select Your Rank-</option>
<option value="1">Airman</option>
<option value="2">Senior Airman</option>
</select>
<br>
<br>
<select class="rank" name="rank_item[1][rank]">
<option value="0">-Select Your Rank-</option>
<option value="1">Airman</option>
<option value="2">Senior Airman</option>
</select>
关于javascript - Jquery,如何拆分()字符串并在中间获取目标字符串?例如 : sample_str[targeted_str][other_str],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56018688/