我的字符串来自ajax响应
"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\tERROR: Profile : NOT SUCCESS\nCODE : 2\nCATEGORY : TECHNICAL\nSEVERITY : null\nENVIRONMENT : DEV\nAPPLICATION : DEV\nDESCRIPTION : Profile: INVOCATION UNHANDLED EXCEPTION [null]\nDESCRIPTION : Profile: [ServiceAttribute]\nDESCRIPTION : Profile: Instance ID = 20130108124231841\n\r\n\r\n"
我使用下面的代码修剪两端的字符串。
var text = originalRequest.responseText.replace(/ ^ \ s + | \ s + $ / g,'');
然而,它正在删除来自ajax响应的消息之间的\ n。 我最终想要的是
"ERROR: Profile : NOT SUCCESS
CODE : 2
CATEGORY : TECHNICAL
SEVERITY : null
ENVIRONMENT : DEV
APPLICATION : DEV
DESCRIPTION : Profile: INVOCATION UNHANDLED EXCEPTION [null]
DESCRIPTION : Profile: [ServiceAttribute]
DESCRIPTION : Profile: Instance ID = 20130108124231841"
我怎么得到这个?尝试过去1小时的不同方式:(
答案 0 :(得分:5)
只需使用trim();
:
var s = "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\tERROR: Profile : NOT SUCCESS\nCODE : 2\nCATEGORY : TECHNICAL\nSEVERITY : null\nENVIRONMENT : DEV\nAPPLICATION : DEV\nDESCRIPTION : Profile: INVOCATION UNHANDLED EXCEPTION [null]\nDESCRIPTION : Profile: [ServiceAttribute]\nDESCRIPTION : Profile: Instance ID = 20130108124231841\n\r\n\r\n";
console.log(s.trim());
"ERROR: Profile : NOT SUCCESS
CODE : 2
CATEGORY : TECHNICAL
SEVERITY : null
ENVIRONMENT : DEV
APPLICATION : DEV
DESCRIPTION : Profile: INVOCATION UNHANDLED EXCEPTION [null]
DESCRIPTION : Profile: [ServiceAttribute]
DESCRIPTION : Profile: Instance ID = 20130108124231841"
如果trim()
不可用(IE 8-),请尝试此polyfill:
if(!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,'');
});
}
答案 1 :(得分:1)
您可以从使用原生replace()
开始两次(重新格式化以查看reg exp):
"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\tERROR: Profile : NOT SUCCESS\nCODE : 2\nCATEGORY : TECHNICAL\nSEVERITY : null\nENVIRONMENT : DEV\nAPPLICATION : DEV\nDESCRIPTION : Profile: INVOCATION UNHANDLED EXCEPTION [null]\nDESCRIPTION : Profile: [ServiceAttribute]\nDESCRIPTION : Profile: Instance ID = 20130108124231841\n\r\n\r\n"
.replace(/^\s+/, "")
.replace(/\s+$/, "")
给出:
ERROR: Profile : NOT SUCCESS
CODE : 2
CATEGORY : TECHNICAL
SEVERITY : null
ENVIRONMENT : DEV
APPLICATION : DEV
DESCRIPTION : Profile: INVOCATION UNHANDLED EXCEPTION [null]
DESCRIPTION : Profile: [ServiceAttribute]
DESCRIPTION : Profile: Instance ID = 20130108124231841
答案 2 :(得分:1)
由于一些奇怪的原因,我不喜欢正则表达式。我尽可能地寻找其他方法。对于那些分享我的观点的人来说,这里是纯JavaScript代码,可根据您的字符列表自定义字符串:
function MyTrim(text) {
//turn into a string in case it's other type:
var result = text + "";
//trim leading characters:
while (result.length > 0 && IsWhiteSpace(result[0]))
result = result.substr(1, result.length - 1);
//trim trailing characters:
while (result.length > 0 && IsWhiteSpace(result[result.length - 1]))
result = result.substr(0, result.length - 1);
return result;
}
function IsWhiteSpace(c) {
return c == " " || c == "\r" || c == "\n" || c == "\t";
}
在你的情况下:
var text = MyTrim(originalRequest.responseText);