如何检查结束的字符串是否有"\ r \n"

jem*_*emz 2 javascript

我在正则表达式方面不擅长,我只是想问一下如果它结束了"\ r \n"我怎么能检查字符串?

先感谢您.

T.J*_*der 5

您不需要正则表达式:

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

当你将负索引传递给substr它时,它意味着"从字符串的末尾".所以"1234".substr(-2)给你"34".

如果你需要使用正则表达式,那将是/\r\n$/,例如:

if (/\r\n$/.test(str)) {
    // Yes, it does
}
Run Code Online (Sandbox Code Playgroud)

\r\n字面上匹配,并且$是一个"说法",意思是"输入到此结束." \r\n如果他们不在最后,那么将不会匹配.


值得注意的是,下一版本的JavaScript ES6将endsWith在字符串上有一个方法,许多JavaScript引擎(Chrome中的V8,Firefox中的SpiderMonkey)已经拥有它.所以你可以填充它,如果它不存在:

if (!String.prototype.endsWith) {
    String.prototype.endsWith = function(suffix) {
        return this.substr(-suffix.length) === suffix;
    };
}
Run Code Online (Sandbox Code Playgroud)

...如果它在那里不会打扰任何东西,但如果没有则添加它,然后使用它:

if (str.endsWith("\r\n")) {
    // Yes, it does
}
Run Code Online (Sandbox Code Playgroud)