javascript - js 正向預(yù)查的正則 匹配不上?
問題描述
目的:去除大括號右邊的空格。下面的可以://第一個var a = '我是空格 {我是參數(shù)} 我前面 {我是參數(shù)} 有空格 我前面的空格不匹配';hand_trim1(a);function hand_trim1(str){
return str.replace(/(?:})s+/g,’}’);
}
//第二個var a = '我是空格 {我是參數(shù)} 我前面 {我是參數(shù)} 有空格 我前面的空格不匹配';hand_trim2(a);function hand_trim2(str){
return str.replace(/}s+/g,’}’);
}
//第三個(這個為什么就是匹配不上呢????????)var a = '我是空格 {我是參數(shù)} 我前面 {我是參數(shù)} 有空格 我前面的空格不匹配';hand_trim3(a);function hand_trim3(str){
return str.replace(/(?=})s+/g,’’);
}
問題解答
回答1:正向預(yù)查是零寬,意思就是寬度是0,只是匹配一個位置,只要這個位置滿足就可以,并不匹配具體的內(nèi)容;(?=})匹配的位置應(yīng)該是在這個位置后面有一個};s+表示從這個位置起,后面跟著空白符;所以,滿足上面兩個條件的位置是這個位置后面的字符即是},又是空白符,因此,這種位置根本不存在,所以不匹配;其實這個位置應(yīng)該是左邊是一個},右邊是s+,但是js沒有負(fù)向斷言,無法預(yù)測左側(cè)的字符類型。
相關(guān)文章:
1. javascript - [MUI 子webview定位]2. javascript - angularjs怎么獲取repeat里的某些$index值?3. javascript - 如何做出pc網(wǎng)站隨鼠標(biāo)滾動動態(tài)出現(xiàn)效果4. java - spring-security與微信登錄的問題?5. android-studio - android studio 結(jié)巴了,有什么辦法可以治好它嗎?6. 前端 - ng-view不能加載進(jìn)模板7. docker-compose 為何找不到配置文件?8. Android下,rxJava+retrofit 并發(fā)上傳文件和串行上傳文件的效率為什么差不多?9. javascript - 求解答:實例對象調(diào)用constructor,此時constructor內(nèi)的this的指向?10. html5和Flash對抗是什么情況?
