2

我有一个看起来像这样的字符串:

[APPLE PIE] Sei Shoujo Sentai Lakers 3 Battle Team Lakers 3 (100% FULL-PIC)_20121104_032834

我想删除字符串末尾的数字,基本上是字符串末尾的 16 位数字。最后它应该是这样的:

[APPLE PIE] Sei Shoujo Sentai Lakers 3 Battle Team Lakers 3 (100% FULL-PIC)

这是我到目前为止写的代码

var str="[APPLE PIE] Sei Shoujo Sentai Lakers 3 Battle Team Lakers 3 (100% FULL-PIC)_20121104_032834";
var n=str.substr(1,74);
document.write(n);

问题是字符串会有所不同,因此每个字符串都会有不同数量的字符。那么如何在javascript中删除字符串末尾的数字呢?

4

7 回答 7

7

如果字符串末尾始终恰好是 16 位数字,则:

s = s.substr(0, s.length - 16);

否则,您可以使用正则表达式:

s = s.replace(/[_0-9]+$/, '');
于 2012-11-26T11:33:03.147 回答
2

使用slice您可以使用负索引。

http://jsfiddle.net/gRoberts/A5UaJ/2/

var str="[APPLE PIE] Sei Shoujo Sentai Lakers 3 Battle Team Lakers 3 (100% FULL-PIC)_20121104_032834";
alert(str.slice(0, -16))​
于 2012-11-26T11:44:01.027 回答
2

而不是substr, 使用replaceand 一个正则表达式:

str.replace(/_\d{8}_\d{6}/,'')

在这里运行演示。

MDN 的参考资料在这里

于 2012-11-26T11:34:51.977 回答
1

只需更改您的代码以根据字符串长度计算索引,以下代码应该可以解决问题。

myString.substr(0, myString.length - 16); 
于 2012-11-26T11:33:09.350 回答
1

这里有几个解决方案:

var str="[APPLE PIE] Sei Shoujo Sentai Lakers 3 Battle Team Lakers 3 (100% FULL-PIC)_20121104_032834";

// Solution 1
// Ugly, since you don't know the number of characters
var n = str.substr(0, 75); // Take note these variables are different than yours!
document.write(n);
document.write("<br />");

// Solution 2
// Only works when the string itself contains no underscores
var n2 = str.split("_")[0];
document.write(n2);
document.write("<br />");

// Solution 3
// Only works if the last amount of numbers are always the same
var n3 = reverse(str);
n3 = n3.substr(16, n3.length);
n3 = reverse(n3);
document.write(n3);

function reverse(s){
    return s.split("").reverse().join("");
}​

JSF中。

于 2012-11-26T11:36:22.950 回答
0

尝试这个

var str="[APPLE PIE] Sei Shoujo Sentai Lakers 3 Battle Team Lakers 3 (100% FULL-PIC)_20121104_032834";
var find=str.indexOf('_');
find=find-1;
var n=str.substr(1,find);
document.write(n);
于 2012-11-26T11:36:57.853 回答
0

检查此功能

检查示例 - http://jsfiddle.net/QN68Q/1/

<!DOCTYPE html> 
<html> 
<body onload="check();"> 

<script>
function check()
{
var theImg= "[APPLE PIE] Sei Shoujo Sentai Lakers 3 Battle Team Lakers 3 (100% FULL-PIC)_20121104_032834";

var x = theImg.split("_");
alert(""+x[0]);
}
</script> 
</body> 
</html>

它删除了最后一个数字,这是你需要的吗?

于 2012-11-26T11:37:49.207 回答