![](/img/trans.png)
[英]Split string to only return the substring prior to the nth occurrence of a delimiter in JavaScript
[英]Keep only one occurrence of substring in a string
我正在尋找一個函數,該函數除去字符串中除第一個字符串外的所有子字符串,因此例如
function keepFirst(str, substr) { ... }
keepFirst("This $ is some text $.", "$");
應該返回: This $ is some text .
我可以先使用split()
然后再使用for(){}
,但是有更好的解決方案嗎?
此解決方案找到rep
首次出現的索引,並刪除其后的所有rep
。
console.log(keepFirst("This $ is some text $$ with $ signs.", "$")); function keepFirst(str, rep) { var fInd = str.indexOf(rep); var first = str.substring(0, fInd + rep.length); var rest = str.substring(fInd + rep.length); return first + rest.replace( new RegExp(rep.replace(/[.*+?^${}()|[\\]\\\\]/g, "\\\\$&"), 'g'), ''); }
這可能是效率最高的最短代碼。 它使用解構分配 。
function keepFirst(str, substr) {
const [
first,
...rest
] = str.split(substr);
return first + (rest.length
? substr + rest.join("")
: "");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.