2009-02-21 11 views
72

これを行う最もクリーンな方法は、IEとfirefoxの両方で動作します。JavaScriptの文字列のダッシュの後にすべてを取得

私の文字列は次のようになります。sometext-20202

今すぐダッシュの後の「sometext」と整数の長さを変えることができます。

私は部分文字列とインデックスを使うべきですか?または他の方法ですか?

答えて

136

:私は好む

// function you can use: 
function getSecondPart(str) { 
    return str.split('-')[1]; 
} 
// use the function: 
alert(getSecondPart("sometext-20202")); 
+25

文字列が 'sometext-20202-303'であれば、この関数が動作しないことに言及する価値はありませんか? –

+10

@IstiaqueAhmed質問が特に具体的な形式ではない場合は、「私の文字列は次のようになります:sometext-20202」 – artlung

+0

質問には、 'javascriptの文字列にダッシュの後にすべてを取得しました 'ケースは、失敗するでしょう。 –

12
var the_string = "sometext-20202"; 
var parts = the_string.split('-', 2); 

// After calling split(), 'parts' is an array with two elements: 
// parts[0] is 'sometext' 
// parts[1] is '20202' 

var the_text = parts[0]; 
var the_num = parts[1]; 
0

\ w- \ d +の形式の正規表現を使用します。\ wは単語を表し、\ dは数字を表します。彼らはボックスの外で動作しませんので、周り遊ぶ。試してくださいthis

4

AFAIK、substring()およびindexOf()は、MozillaとIEの両方でサポートされています。ただし、以前のバージョンのブラウザ(特にNetscape/Opera)ではsubstr()がサポートされていない可能性があります。

あなたの投稿は、あなたがすでにsubstring()indexOf()を使ってそれを行う方法を知っていることを示しているので、コードサンプルを投稿していません。私はこれを行うだろうか

+0

これは実際にはより良いソリューションですあなたのアプリケーションに応じて分割します。複数の場合は、望ましくない結果が生じる可能性があります。 – trevorgrayson

+11

string.substring(string.indexOf( ' - ')+1) – trevorgrayson

+2

@trevorgraysonこれは最良の答えです。 – chiliNUT

22

ソリューションは、次のようになります。

var str = 'sometext-20202', 
    slug = str.split('-').pop(); 
slugはあなたの結果だろう

0
var testStr = "sometext-20202" 
var splitStr = testStr.substring(testStr.indexOf('-') + 1); 
関連する問題