[英]How to match media query with javascript RegExp
我想將這樣的字符串與regEx匹配:
@media only screen and (max-width: 479px){
.abv{style:value;style:value}
.xyz{style:value;style:value}
}
但是我不能。 我的regEx以/ @media[^{]*\\{ /gim
開頭,然后想匹配除}}
之后的所有內容, }}
/@media[^{]*\\{[^}}]*\\}(?=})/gim
這不起作用,因為[^}}] == [^}]
...我不知道如何使regEx像這樣工作,請幫助
來自Respond.js的演示
@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+[^\}]+\}
你要這個:
/@media[^{]*\{(?:(?!\}\s*\}).)*/gis
您不需要m
修飾符,它僅適用於錨點^
和$
您的意思是使用s
修飾符制作.
也匹配換行符。 您沒有使用.
在您的正則表達式中,但我做到了。
使用此構造(?:(?!\\}\\s*\\}).)*
意味着僅當它不是}
后跟另一個}
之間且中間可能有空格時,才匹配下一個字符。 負前瞻(?!\\}\\s*\\})
確保了此斷言。 以?:
開頭的組只是一個非捕獲組,沒什么特別的。
您也可以嘗試使用此/@media[^\\(]+[^\\)]+\\){([^{]+[^}]+})+[^}]+}/ig
嘗試這個:
@media[^\{]*\{([^\{]+\{[^\}]+\}\n*)*\n*\}
不能100%確定其工作原理,但似乎(此頁面上其他條目的嘗試和錯誤)
/(@media[^{]*{(?:(?!}\s*}).)*}.*?})/s
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.