2015-05-06 53 views
2

我不擅長正則表達式,我只是想問問如果字符串結尾「\ r \ n」,如何檢查字符串?如何檢查結束字符串是否具有「 r n」

預先感謝您。

+0

類似的問題嘗試回答這裏:http://stackoverflow.com/questions/280634/endswith-in-javascript - 它不會創建子字符串,並具有最大的性能 – hal

+0

@hal:性能不太可能重要,但如果它確實,它變成簡單的substr方法在Chrome上速度最快,與Firefox和IE11上的indexOf方法大致相同:http://jsperf.com/endswith-stackoverflow/14(現代瀏覽器非常好的字符串操作)。當結果爲false時,它的速度會更快:http://jsperf.com/endswith-stackoverflow-when-false –

回答

5

你不需要正則表達式爲:

if (str.substr(-2) === "\r\n") { 
    // Yes, it does 
} 

當你傳遞一個消極索引substr,它需要它「從字符串的結束」的意思。所以"1234".substr(-2)給你"34"

如果需要使用正則表達式,這將是/\r\n$/,如:

if (/\r\n$/.test(str)) { 
    // Yes, it does 
} 

\r\n字面上匹配,並且$是一個「說法」,意思是」輸入到此結束。 「所以\r\n不會匹配,如果他們不是最後。


這也許值得指出的是JavaScript的,ES6,下一個版本將會對字符串的endsWith方法,很多JavaScript引擎(V8在Chrome,SpiderMonkey的在Firefox)已經擁有了它。所以,如果它不存在,你可以填充工具是:

if (!String.prototype.endsWith) { 
    String.prototype.endsWith = function(suffix) { 
     return this.substr(-suffix.length) === suffix; 
    }; 
} 

...如果它的存在不妨礙任何東西,但它補充說如果不是,然後使用它:

if (str.endsWith("\r\n")) { 
    // Yes, it does 
} 
相關問題