我想刪除ajax響應字符串中的控制字符(例如:\ u0005)。 我使用正則表達式是:msg = msg.replace(/[\x00-\x1F\x7F-\x9F]/g, '');
正則表達式unicode範圍[uXXXX]沒有用ajax標識
正則表達式的工作時,我的字符串靜態分配給一個變量,但同樣的表情不是我的Ajax調用工作。
// send command
$.ajax({
type: "POST",
cache: false,
url: "/data/test.txt",
dataType: 'text',
data: tmpCommand
})
.done(function(msg){
//remove C1 and C0 control characters from response string
msg = msg.replace(/[\x00-\x1F\x7F-\x9F]/g, ''); //not working
//msg = msg.replace(/[\u0000-\u0009]/g, ''); //not working
//msg = msg.replace(/\\u0005/g, ""); //working
response= $.parseJSON(msg);
console.log(response);
})
.always(function(msg){
});
下面的響應是JSON字符串。例如:{「name1」:「\ u0005ABC」,「name2」:「\ u0005fgav」}
可能是什麼問題?
剛剛在Chrome控制檯中嘗試過。看起來像你的正則表達式:var x =「x \ u0005x」; var y = x.replace(/ [\ u0000- \ u0009]/g,「」); var z = x.replace(/ [\ x00- \ x1F \ x7F- \ x9F]/g,''); console.log(x.length +''+ y.length +''+ z.length); – qianfg
@ qianfg正則表達式就像那樣工作,但它不能與ajax響應一起工作。 – coder123
您可以在替換線處設置斷點,並查看替換之前和之後msg的長度是否更改? – qianfg