我试图找出如何替换示例:
sw1_code1_number1_jpg - > code1_number1_jpg
hon2_noncode_number2_jpg - > noncode_number2_jpg
ccc3_etccode_number3_jpg - > etccode_number3_jpg
ddd4_varcode_number4_jpg - > varcode_number4_jpg
所以结果都是第一个_之后的字符串 如果它没有找到任何_那么什么都不做。
我知道如何查找和替换字符串,str.replace,indexof,lastindexof,但不知道如何删除第一个找到的事件。
谢谢
答案 0 :(得分:1)
将replace
方法与正则表达式一起使用:
"sw1_code1_number1_jpg".replace(/^.*?_/, "");
答案 1 :(得分:1)
您可以采取以下几种方法:
var str = 'sw1_code1_number1_jpg';
var arr = str.split('_');
arr.shift();
var newSfr = arr.join('_');
或者您可以使用切片或替换:
var str = 'sw1_code1_number1_jpg';
var newStr = str.slice(str.indexOf('_')+1);
或者
var newStr = 'sw1_code1_number1_jpg'.replace(/^[^_]+_/,'');
答案 2 :(得分:1)
您可以拆分字符串并获得slice
var str = 'sw1_code1_number1_jpg';
var finalStr = str.split('_').slice(1).join('_') || str;
如果原始字符串不包含下划线,则返回原始字符串。
更新更简单的slice
(仍适用于不包含下划线的字符串)
var str = 'sw1_code1_number1_jpg';
var finalStr = str.slice(str.indexOf('_') + 1);
这个适用于所有情况,因为当没有找到下划线时,返回-1
,当我们向索引添加1时,我们称str.slice(0)
等于str。