我与javasctipt长字符串替代的工作,我有,我不能用str.replace(/substr/g,'new string')
,不允许更换,以取代我不能预先确定的长度和值,子一个子串,我可以确定它的开始位置和长度。使用Javascript - PHP的SUBSTR()JavaScript的
有没有我可以使用像string substr (string, start_pos, length, newstring)
的功能?
我与javasctipt长字符串替代的工作,我有,我不能用str.replace(/substr/g,'new string')
,不允许更换,以取代我不能预先确定的长度和值,子一个子串,我可以确定它的开始位置和长度。使用Javascript - PHP的SUBSTR()JavaScript的
有没有我可以使用像string substr (string, start_pos, length, newstring)
的功能?
没有内置的功能与基于索引和长度的新内容取代。扩展字符串的原型(或简单地定义为函数)并使用String#substr
方法生成字符串。
String.prototype.customSubstr = function(start, length, newStr = '') {
return this.substr(0, start) + newStr + this.substr(start + length);
}
console.log('string'.customSubstr(2, 3, 'abc'));
// using simple function
function customSubstr(string, start, length, newStr = '') {
return string.substr(0, start) + newStr + string.substr(start + length);
}
console.log(customSubstr('string', 2, 3, 'abc'));
在JavaScript中你有substr
和substring
:
var str = "mystr";
console.log(str.substr(1, 2));
console.log(str.substring(1, 2));
它们的区别在第二个参数。对于substr
是长度(像你问的一个)和substring
是最后一个索引位置。你不要求第二个,但只是为了记录它。
反正是有他们使用用其他字符替换一个或多个字符? –
是的,您必须将子串绑定到所需的索引并将其连接到下一个索引。其实,这个答案是相当不错的:http://stackoverflow.com/a/42300623/1525495 –
您可以使用使用+
这样的substr
组合和连接:
function customReplace(str, start, end, newStr) {
return str.substr(0, start) + newStr + str.substr(end);
}
var str = "abcdefghijkl";
console.log(customReplace(str, 2, 5, "hhhhhh"));
这是不行的,如果'newStr'参数没有通过:'的console.log(customReplace(STR,2,5) );''给abundefinedfghijkl' – RomanPerekhrest
@RomanPerekhrest如果'newStr'不过去了那么什么是函数本身的意义呢? –
你应该考虑这个条件来得到一个更统一的解决方案 – RomanPerekhrest
我要与其他charachters –
@BelgacemKsiksi更换:更新 –