2012-03-23 13 views

答えて

4

ないjQueryの、ただのJavaScript:lastIndexOfsubstringはそれが(更新は複数の文字を示すわけではないので)だろう。文字クラスを含むキャプチャグループを含む正規表現と同様に、文字列の終わりのアンカーが続く。 /([^.;+_]+)$/RegExp#execまたはString#matchで使用されます。

など。 (live copy | source):

var match = /([^.;+_]+)$/.exec(theStringToTest), 
    result = match && match[1]; 
1
var s = "string.name+org.com", 
    lw = s.replace(/^.+[\W]/, ''); 

console.log(lw) /* com */ 

これも
string.name + ORG/COM
string.name + org.info

0

使用

のようなJavaScriptの機能のために動作します
url.substr(url.length - 3); 
+4

これは 'last.fm'のようにsthでは機能しません – m90

4

lastIndexOfsubstrを使用してチャラックTERはそれの後に文字列の一部を取得し、:

var extension = name.substr(name.lastIndexOf(".") + 1); 

デモ:http://jsfiddle.net/Guffa/K3BWn/

+0

質問を複数の文字をリストするように変更するまでは問題ありませんでした。 –

1

あなたはRegExp Objectを使用することができます。

"http://stackoverflow.com".replace(/.*\./,""); 
1
私は クレイジー(すなわちなしのRegExp)にスローされます

1:

var s = 'string.name+org.com'; 
var a = s.split('.'); //puts all sub-Strings delimited by . into an Array 
var result = a[a.length-1]; //gets the last element of that Array 
alert(result);​ 

EDIT

このコードを試してみてください質問の更新を要求しているので、これを動作させる複数のデリミタは、おそらく行く方法ではありません。

+0

'(')だけでなく、複数の文字を持つように質問を変更するまでは、(不要な一時オブジェクトの束を除いて)うまくいきました。 –

+0

@ T.J.Crowderああ、私はまだ編集に気付かなかった....通知をありがとう。 – m90

0

多分これが考えるには余りにも遅すぎるクレイジー .....、このコードは、あなただけ「に「_」replateできjqueryの

var afterDot = value.substr(value.lastIndexOf('_') + 1); 

を使用して私のために正常に動作します。'を

var myString = 'asd/f/df/xc/asd/test.jpg' 
var parts = myString.split('/'); 
var answer = parts[parts.length - 1]; 
console.log(answer); 
+0

var myString = 'asd/f/df/xc/asd/test.jpg' varパート= myString.split( '/'); var answer = parts [parts.length - 1]; –

1

定義されたセットからの文字が最後に出現した後に部分文字列を取得するためのシンプルで読みやすいapprochがスプリットにある文字クラスを含む正規表現と文字列とは、取得するためにpop()を使用します得られた配列の最後の要素:

pop()方法は、アレイから最後の要素を取り除き、その要素を返します。

下にJSのデモを参照してください。デフォルトでは、正規表現のすべての非オーバーラップの発生で分割する

var s = 'string.name+org.com'; 
 
var result = s.split(/[.;+_]/).pop(); 
 
console.log(result);

:あなたは^]\または-を一致させる必要がある場合は、あなたがそれらをエスケープし、文字クラス(例えば/[\^\-\]\\]/)内の任意の場所を使用することができます。有効な範囲の後に、[の直後、[の直前、]の直前の場合は、^のエスケープを避けることができます([の直後に置かない場合)。別のシンボル):/[-^\]\\]/。あなたは、単一の文字で分割する必要がある場合

はまた、何の正規表現は必要ありません:«最後の文字の後に»

// Get the substring after the last dot 
 
var result = 'string.name+org.com'.split('.').pop(); 
 
console.log(result);

関連する問題