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使用します。replace

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("");
}​

JSFiddle

于 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 に答える