[英]JavaScript substr(), Get Characters in the Middle of the String
我有一个字符串,var str =“ Runner,The(1999)”;
使用substr(),我需要查看str中是否包含“,The”(从后面的7个字符开始),如果是,则删除这些字符并将其放在开头。 像这样:
if (str.substr(-7) === ', The') // If str has ', The' starting from 7 characters back...
{
str = 'The ' + str.substr(-7, 5); // Add 'The ' to the start of str and remove it from middle.
}
产生的str应等于“ The Runner(1999)”。
请不要使用正则表达式或其他函数。 我正在尝试学习如何使用substr。
var str = "Runner, The (1999)";
if(str.indexOf(", The") != -1) {
str = "The "+str.replace(", The","");
}
在这里,仅按要求使用substr
:
var str = "Runner, The (1999)";
if(str.substr(-12, 5) === ', The') {
str = 'The ' + str.substr(0, str.length - 12) + str.substr(-7);
}
alert(str);
应当指出,这不是实现所需目标的最佳方法(尤其是使用像-7
这样的硬编码值–几乎从来没有像使用lastIndexOf
,regex等之类的东西那样好)。 但是您想要substr
,所以就可以了。
如果您只想使用substr:
var a = "Runner, The (1999)"
var newStr;
if (str.substr(-7) === ', The')
newStr= 'The ' +a.substr(0,a.length-a.indexOf('The')-4) + a.substr(a.indexOf('The')+3)
使用a.substr(0,a.length-a.indexOf('The')-4)
获得“ The”之前的单词,并使用a.substr(a.indexOf('The')+3)
获得单词之后。
因此,您说解决方案应仅限于substr方法。 根据您的意思会有不同的解决方案:
“,The”包含在str中,从7个字符开始
如果您的意思是完全位于-7位,那么代码可能看起来像这样(我将-7替换为-12,以便代码返回true):
function one() {
var a = "Runner, The (1999)";
var b = ", The";
var c = a.substr(-12, b.length);
if (c == b) {
a = "The " + a.substr(0, a.length - 12) +
a.substr(a.length - 12 + b.length);
}
}
但是,如果子字符串“,The”可以在位置-7和字符串末尾之间的任何位置找到,而您实际上只需要使用substr,则检查一下:
function two() {
var a = "Runner, The (1999)";
var b = ", The";
for (var i = a.length - 12; i < a.length - b.length; i++) {
if (a.substr(i, b.length) == b) {
a = "The " + a.substr(0, i) + a.substr(i + b.length);
break;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.