我在做什麼錯?獲取子串問題(js ..或jquery)
我需要在這裏
<div class="test">11/16/2001</div>
<script>
var lastfour = $(".test");
lastfour.substr(6);
</script>
拿到最後4個字符試圖在這裏得到了一年。我知道我的語法很糟糕,但我只是在尋找最簡單的解決方案。
謝謝!
我在做什麼錯?獲取子串問題(js ..或jquery)
我需要在這裏
<div class="test">11/16/2001</div>
<script>
var lastfour = $(".test");
lastfour.substr(6);
</script>
拿到最後4個字符試圖在這裏得到了一年。我知道我的語法很糟糕,但我只是在尋找最簡單的解決方案。
謝謝!
$(".test");
返回一個jquery對象,而不是一個字符串。您需要撥打.text()
以獲取文本。
此外,您還有一個額外的)
。
此代碼還假定只有一個元素具有您關心的test
類。如果還有更多,請看each
。
如果過去四年,最好的辦法是使用負值,所以這將是(固定變量作爲Sinetheta建議):
<script>
var lastfour = $(".test").text().substr(-4);
</script>
也,你在你的腳本有額外的)
lastfour.substr(6));
編輯(爲了子孫後代):
在IE中有一個錯誤,James指出負值返回整個字符串的地方。這不適用於IE9。 但slice()
函數也在IE中工作,它也接受負值。
這是否只適用於日期的mm/dd/yyyy格式,如你的例子?
在這種情況下,此解決方案(http://jsfiddle.net/TU4aF/)會更好。
var date = $(".test").text();
var splitDate = date.split('/');
var year = splitDate[2];
它可以處理個位數月和日。
以下示例使用以下字符串。我使用數字,因此很容易看到發生了什麼。
var s = "1234567890";
獲取的所有字符從8字符串中(即開始= 7,因爲它基於的零):
s.substr(7); // returns 890
獲取字符串中的前兩個字符:
s.substr(0, 2); // returns 12
從字符串中獲取最後兩個字符:
s.substr(-2); // returns 90
從第四個開始獲取四個字符(即啓動= 3):
s.substr(3, 4); // returns 4567
如果start +長度比什麼則僅剩餘字符的字符串到字符串的結尾包括(顯然沒有別的提取),這樣得到的字符串更大可能並不一定與您所期望的一樣長。這在下面的例子中,其中長度是通過20示出,但所得到的字符串是隻有4個字符長:
s.substr(6, 20); // returns 7890
獲取兩個字符從端部開始4:
s.substr(-4, 2); // returns 78
String.substring(開始,到)
String.substring()與String.substr()的作用略有不同,其中起始位置和位置作爲參數傳遞,而不是起始和長度。
試試這個
<div class="test">11/16/2001</div>
<script>
var lastfour = $(".test").text();
lastfour.substr(-4);
</script>
errrm好,這'警報(11年/16/2001'.substr(-4));'給了我2001,結果...... – Kokers 2012-02-16 20:36:56
我想不串SUBSTR。我收回之前說過的話。 – 2012-02-16 20:40:26
也許只是修復他的變量:'var lastfour = $(「。test」)。text()。substr(-4);' – Sinetheta 2012-02-16 20:40:46