javascript - js 正向預查的正規 符合不上?
代言
代言 2017-06-26 10:56:06
0
1
825

目的:去除大括號右邊的空格。
下面的可以:
//第一個
var a = "我是空格{我是參數} 我前面{我是參數} 有空格我前面的空格不符";
hand_trim1(a);
function hand_trim1(str){

return str.replace(/(?:\})\s+/g,'}');

}

//第二個
var a = "我是空格{我是參數} 我前面{我是參數} 有空格我前面的空格不符";
hand_trim2(a);
function hand_trim2(str){

return str.replace(/}\s+/g,'}');

}

//第三個(為什麼就是不匹配呢????????)
var a = "我是空格{我是參數} 我前面{我是參數} 有空格我前面的空格不符";
hand_trim3(a);
function hand_trim3(str){

return str.replace(/(?=\})\s+/g,'');

}

代言
代言

全部回覆(1)
仅有的幸福

正向預查是零寬,意思就是寬度是0,只是匹配一個位置,只要這個位置滿足就可以,並不匹配具體的內容;
(?=})匹配的位置應該是在這個位置後面有一個}
s+表示從這個位置起,後面跟著空白符;
所以,滿足上面兩個條件的位置是這個位置後面的字符即是},又是其實符,因此,這種位置根本不存在,所以不匹配;
其實這個位置應該是左邊是一個},右邊是s+,但是js沒有負向斷言,無法預測左側的字元類型。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板