2013-02-08 33 views
9

Nếu tôi có chuỗi được nạp vào một biến, thì phương pháp thích hợp nào để sử dụng để xác định xem chuỗi có kết thúc bằng dấu "/" không?Javascript để tìm xem chuỗi có kết thúc bằng dấu gạch chéo không

var myString = jQuery("#myAnchorElement").attr("href"); 
+0

jQuery không thể làm điều đó. Tuy nhiên, JavaScript có thể. –

+0

có thể trùng lặp [cách lấy ký tự cuối cùng của chuỗi?] (Http://stackoverflow.com/questions/3884632/how-to-get-the-last-character-of-a-string) –

Trả lời

12

Một công trình regex, nhưng nếu bạn muốn tránh điều đó toàn bộ cú pháp khó hiểu, đây là cái gì đó nên làm việc: javascript/jquery add trailing slash to url (if not present)

var lastChar = url.substr(-1); // Selects the last character 
if (lastChar !== '/') {   // If the last character is not a slash 
    ... 
} 
3

Sử dụng regex và làm:

myString.match(/\/$/) 
1

Một giải pháp đơn giản có thể chỉ cần kiểm tra các ký tự cuối cùng qua:

var endsInForwardSlash = myString[myString.length - 1] === "/"; 

EDIT: Hãy nhớ, bạn sẽ cần phải kiểm tra rằng chuỗi không phải là null đầu tiên để giữ từ ném một ngoại lệ.

1

Bạn có thể sử dụng chuỗi con và lastIndexOf:

var value = url.substring(url.lastIndexOf('/') + 1); 
0

Bạn don' t cần JQuery cho điều đó.

function endsWith(s,c){ 
    if(typeof s === "undefined") return false; 
    if(typeof c === "undefined") return false; 

    if(c.length === 0) return true; 
    if(s.length === 0) return false; 
    return (s.slice(-1) === c); 
} 

endsWith('test','/'); //false 
endsWith('test',''); // true 
endsWith('test/','/'); //true 

Bạn cũng có thể viết một nguyên mẫu

String.prototype.endsWith = function(pattern) { 
    if(typeof pattern === "undefined") return false; 
    if(pattern.length === 0) return true; 
    if(this.length === 0) return false; 
    return (this.slice(-1) === pattern); 
}; 

"test/".endsWith('/'); //true 
Các vấn đề liên quan