Trim String on both ends using javascript
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How do I trim a string in javascript?
号
下面的字符串来自Ajax响应
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | " \t \tERROR: 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 " |
我使用下面的代码来修剪两端的字符串。
var text = originalRequest.responseText.replace(/^\s+|\s+$/g, '');
号
但是,它会删除来自Ajax响应的消息之间的。最后我想要的是
1 2 3 4 5 6 7 8 9 | "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小时开始尝试不同的方法:(
只需使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | var s =" \t \tERROR: 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 "; 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" |
如果
1 2 3 4 5 | if(!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,''); }); } |
。
出于某种奇怪的原因,我不太喜欢正则表达式。只要有可能,我会设法找到其他方法。对于那些分享我的观点的人,这里是纯javascript代码,用于根据您的字符列表定制修剪字符串:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 ==" " || c ==" " || c =="\t"; } |
在您的情况下:
1 | var text = MyTrim(originalRequest.responseText); |
。
实时测试用例。
您可以使用本机
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | " \t \tERROR: 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 " .replace(/^\s+/,"") .replace(/\s+$/,"") |
给予:
1 2 3 4 5 6 7 8 9 | 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 |
号