假设我有以下字符串:div.classOneA.classOneB#idOne
尝试编写一个正则表达式,从中提取类(classOneA,classOneB)。我能够做到这一点,但是仅使用Lookbehind assertion。
看起来像这样:
'div.classOneA.classOneB#idOne'.match(/(?<=\.)([^.#]+)/g)
> (2) ["classOneA", "classOneB"]
现在,我想将其存档,而无需采用后顾之忧,也不真正理解为什么我的解决方案无法正常工作。
'div.classOneA.classOneB#idOne'.match(/\.([^.#]+)/g)
> (2) [".classOneA", ".classOneB"]
以为分组会解决我的问题,但所有匹配项也都包含点。
最佳答案
如果要扩展您的正则表达式。您可以简单地对结果进行map
并将.
替换为空字符串
let op = 'div.classOneA.classOneB#idOne'.match(/\.([^.#]+)/g)
.map(e=> e.replace(/\./g,''))
console.log(op)