diff --git a/deps/weex-styler/index.js b/deps/weex-styler/index.js index c299d224a3a9eb2f7ca0b2cc565dca8c80d7f1fb..b4ea0ff9e6156a6b73183c8031a7756c98dd91a5 100644 --- a/deps/weex-styler/index.js +++ b/deps/weex-styler/index.js @@ -13,6 +13,9 @@ var LENGTH_REGEXP = /^[-+]?\d*\.?\d+(\S*)$/ const CARD_SELECTOR = /^[\.#][A-Za-z0-9_\-]+$/ const card = process.env.DEVICE_LEVEL === 'card' var ALL_SELECTOR_MATCHER = /^\*$/ +var ATTRIBUTE_SELECTOR = /^\[+(?![0-9])\w{0,}(\s*=\s*)((?![0-9])\w{0,}|\"\w{0,}\")\]+$/ +var ELEMENT_AND_ELEMENT = /^[a-zA-Z][a-zA-Z-]{0,}\s{0,}(\+\s{0,}[a-zA-Z][a-zA-Z-]{0,})+$/ +var CONTENT_ID = /^[a-zA-Z][a-zA-Z-]{0,}([#][a-zA-Z][a-zA-Z0-9-]{0,})(.+?::(after|before))+$/ /** * expand margin、padding、border、borderWidth、borderColor、borderStyle properties、animation @@ -273,7 +276,8 @@ function parse(code, done, resourcePath) { rule.selectors.forEach(function (selector) { const flag = card ? selector.match(CARD_SELECTOR) : selector.match(SELECTOR_MATCHER) || selector.match(DESCENDANT_SELECTOR_MATCHER) || - selector.match(ALL_SELECTOR_MATCHER) + selector.match(ALL_SELECTOR_MATCHER) || selector.match(ATTRIBUTE_SELECTOR) || + selector.match(ELEMENT_AND_ELEMENT) || selector.match(CONTENT_ID) if (flag) { var className = selector