我正在编写一个javascript来计算textarea中的sms字符。我想把几个字符算作两个字符,例如{} \ | []€^将新行包含为两个字符。我把它们写成了一个正则表达式。请参阅下面的代码。
ExChar = "\\^{}\\\\\\[~\\]|€\r\n";
ExCharRegExp = RegExp("^[\\" + ExChar + "]*$");
但是当我执行代码时,当我有换行/回车时它似乎不起作用它仍然算作一个字符。我可以知道我的代码有什么问题吗?正如我所说的那样
Regex to match carriage return in Javascript第二个答案谈论如何匹配\ r \ n
希望你们能帮助我。
答案 0 :(得分:0)
你的错误不在于你正在阅读的答案。
它将正则表达式定义为正则表达式文字/^[\r\n ]+$/
,您可以从字符串文字定义正则表达式。
不同之处在于需要逃避\
。对于您的情况,您应该写\\r\\n
。
但是,根据您处理比赛的方式,您可能仍会遇到麻烦。
这是因为\r\n
匹配两个单独的字符。回车和换行 - 这是打字机时代的遗产。
根据系统的不同,实际换行可以表示为回车后跟换行符,换行符后跟回车符或仅换行符。