私はすでに1時間以上試していますが、正しい方法を見つけることはできませんが、おそらくかなり簡単です:
次のようなものがあります:foo/bar/test.html
JQueryを使用して、最後の/
以降のすべてを抽出したいと思います。上記の例では、出力はtest.html
になります。
substr
とindexOf()
を使用して実行できると思いますが、有効なソリューションは見つかりません。
少なくとも3つの方法:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
...これは、文字列([^/]*
)の末尾にある「スラッシュを含まない一連の文字を取得する」($
)と言います。次に、返された一致オブジェクトにインデックスを付けて一致した文字を取得します([0]
)。一致オブジェクトでは、最初のエントリは一致した文字列全体です。キャプチャグループは必要ありません。
lastIndexOf
およびsubstring
の使用:var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
lastIndexOf
は、音のように動作します。last文字(まあ、文字列)のインデックスを検索します文字列で、見つからない場合は-1を返します。 10回のうち9回はおそらくその戻り値(if (n !== -1)
)をチェックしたいでしょうが、上記では1を追加してsubstringを呼び出すため、str.substring(0)
を実行することになります。文字列を返します。
Array#split
を使用SudhirとTom Waltersは here と here をカバーしていますが、完全を期すためです:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
split
は、指定された区切り文字を使用して文字列を分割し、配列を返します。
lastIndexOf
/substring
ソリューションは、おそらく最も効率的です(ただし、JavaScriptとパフォーマンスについては、エンジンが大幅に異なるため、互いに))が、ループでこれを数千回実行していない限り、それは重要ではなく、コードを明確にするために努力します。
JQueryは必要ありません。jQueryを実行する方法はたくさんあります。たとえば:
var parts = myString.split('/');
var answer = parts[parts.length - 1];
MyStringには文字列が含まれます。
var str = "foo/bar/test.html";
var lastSlash = str.lastIndexOf("/");
alert(str.substring(lastSlash+1));
試してみてください。
var str = "foo/bar/test.html"; var tmp = str.split( "/"); alert(tmp.pop());
String path ="AnyDirectory/subFolder/last.htm";
int pos = path.lastIndexOf("/") + 1;
path.substring(pos, path.length()-pos) ;
これで、パス文字列にlast.htmが含まれました。
軽い重量
string.substring(start,end)
どこ
start = Required
。抽出を開始する位置。最初の文字はインデックス0`です。
end = Optional
。抽出を終了する位置(最大値を含むが、含まない)。省略した場合、残りの文字列が抽出されます。
var string = "var1/var2/var3";
start = string.lastIndexOf('/'); //console.log(start); o/p:- 9
end = string.length; //console.log(end); o/p:- 14
var string_before_last_slash = string.substring(0, start);
console.log(string_before_last_slash);//o/p:- var1/var2
var string_after_last_slash = string.substring(start+1, end);
console.log(string_after_last_slash);//o/p:- var3
OR
var string_after_last_slash = string.substring(start+1);
console.log(string_after_last_slash);//o/p:- var3
文字列がかなり短くなることがわかっている場合は、次のライナーを使用します...(バックスラッシュをエスケープすることを忘れないでください)
// if str is C:\windows\file system\path\picture name.jpg
alert( str.split('\\').pop() );
picture name.jpg
でアラートがポップアップします
質問の必要に応じて::
var string1= "foo/bar/test.html";
if(string1.contains("/"))
{
var string_parts = string1.split("/");
var result = string_parts[string_parts.length - 1];
console.log(result);
}
そして、URLで尋ねられた質問(「=」の1つの出現を求められました)::
[ http://stackoverflow.com/questions/24156535/how-to-split-a-string-after-a-particular-character-in-jquery] [1]
var string1= "Hello how are =you";
if(string1.contains("="))
{
var string_parts = string1.split("=");
var result = string_parts[string_parts.length - 1];
console.log(result);
}
Jquery:
var afterDot = value.substr(value.lastIndexOf('_') + 1);
Javascript:
var myString = 'asd/f/df/xc/asd/test.jpg'
var parts = myString.split('/');
var answer = parts[parts.length - 1];
console.log(answer);
'_'を置換|| 「/」を自分のニーズに合わせて