我在正则表达式方面不擅长,我只想问一下,如果字符串结束,我该如何检查字符串“\ r \ n”?
提前谢谢。
答案 0 :(得分: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引擎(Chrome中的V8,Firefox中的SpiderMonkey)已经拥有它。因此,如果不存在,您可以将其填充:
if (!String.prototype.endsWith) {
String.prototype.endsWith = function(suffix) {
return this.substr(-suffix.length) === suffix;
};
}
...如果不存在任何干扰,如果不存在则加上它,然后使用它:
if (str.endsWith("\r\n")) {
// Yes, it does
}