use*_*721 7 javascript string truncate
如何在模式之后或之前截断字符串?
假设我有一个字符串,"abcdef"我需要在之后截断所有内容,"abc"因此输出将是:
def
如果我"def"在输出之前说 truncate应该是:
abc
下面是我试过的代码
var str1 = "abcdefgh";
var str2 = str1.substr(str1.indexOf("abc"), str1.length);
console.log(str2);
Run Code Online (Sandbox Code Playgroud)
我没有得到输出。
我被困在这里任何帮助将不胜感激。
您需要传递“abc”的长度作为 substr 方法中的第二个参数
var str1 = "abcdefgh";
var pattern = "abc";
var str2 = str1.substr(str1.indexOf(pattern), pattern.length); <-- check this line
console.log(str2);
Run Code Online (Sandbox Code Playgroud)
但是,对于字符串中不存在的模式,上面的代码可能会返回意外的结果。
var str1 = "abcdefgh";
var pattern = "bcd";
var str2 = "";
if(str1.indexOf(pattern)>=0) //if a pattern is not present in the source string indexOf method returns -1
{
//to truncate everything before the pattern
//outputs "efgh"
str2 = str1.substr(str1.indexOf(pattern)+pattern.length, str1.length);
console.log("str2: "+str2);
// if you want to truncate everything after the pattern & pattern itself
//outputs "a"
str3 = str1.substr(0, str1.indexOf(pattern));
console.log("str3: "+str3);
}
Run Code Online (Sandbox Code Playgroud)
var str = "sometextabcdefine";
var pattern = "abc";
var truncateBefore = function (str, pattern) {
return str.slice(str.indexOf(pattern) + pattern.length);
};
var truncateAfter = function (str, pattern) {
return str.slice(0, str.indexOf(pattern));
}
console.log(truncateBefore(str, pattern)); // "define"
console.log(truncateAfter(str, pattern)); // "sometext"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16332 次 |
| 最近记录: |