假设我有以下字符串: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)

07-26 00:48