我想要一个能够找到
正确出现次序的正则表达式* | 。 | #| '任何HTML元素类型',如'p'或'div'
LIKE
var regex = //Some regular expression;
var pattern_1 = "*p.class1#id1.class2";
pattern_1.match(regex); // Should print ['*','p','.','#','.']
var pattern_2 = "p.class1#id1.class2";
pattern_2.match(regex); //Should print ['p','.','#','.']
var pattern_3 = "p#id1.class1.class2";
pattern_3.match(regex); //Should print ['p','#','.','.']
var pattern_4 = "#id.class1.class2";
pattern_4.match(regex); //should print ['#id','.','.']
var pattern_5 = "*#id.class1.class2";
pattern_5.match(regex); //should print ['*','#','.','.']
我正在尝试regex = /^\*?[a-zA-Z]*|\#|\./g
,但它不起作用
答案 0 :(得分:2)
您可能最好将#
和.
与其各自的值匹配,然后过滤结果:
var regex = /\*|([#.]\w+)|(\w+)/g
matches = pattern_1.match(regex).map(function(x) { return x.match(/^[#.]/) ? x.charAt(0) : x })
或首先删除id / class名称,然后匹配:
matches = pattern_1.replace(/([#.])\w+/g, "$1").match(/[.#*]|\w+/g)
答案 1 :(得分:0)
好的,我有:
/(\*)|(\.)|([a-zA-Z]+)|(#)/g
问题在于,除非您指定可以捕获的所有可能的html元素,如div
,span
等,否则它将匹配所有字符串,包括类和ID名称。
希望这无论如何都有帮助。