Javascript 除非字符串中有括号,否则前瞻不匹配

Javascript 除非字符串中有括号,否则前瞻不匹配,javascript,regex,Javascript,Regex,我使用此负前瞻搜索单行字符串: /\s+(?![^[]*]).+/g 这与以下两项匹配: // String 1 a.casd-234[test='asfd asdf'] abc defg // String 2 asf.one.two.three four five six 这将返回abc defg和four-five-six 我试图编写一个express来获取文本前面的值(a.casd-234[test='asfd asdf'],asf.one.two.three): /.+(?您正在

我使用此负前瞻搜索单行字符串:

/\s+(?![^[]*]).+/g
这与以下两项匹配:

// String 1
a.casd-234[test='asfd asdf'] abc defg

// String 2
asf.one.two.three four five six
这将返回
abc defg
four-five-six

我试图编写一个express来获取文本前面的值(
a.casd-234[test='asfd asdf']
asf.one.two.three
):


/.+(?您正在使用正则表达式从某一点到字符串的末尾匹配字符串(正则表达式末尾的
+
匹配1+字符,而不是换行符,直到行/字符串的结尾)

因此,最简单的解决方案是使用相同的模式和
.replace
方法:

var rx=/\s+(?![^[]*])。+/;
console.log(“a.casd-234[test='asfd asdf']abc defg.”替换(rx,);

console.log(“asf.one.two.three-445-six”。replace(rx,);
我正在解析选择器。然后我将其转换为
HTMLElement
。格式为
selector-textContent
,其中第一个空格不在
[
]
将两者分开。如果
]
后有一个逗号被视为无效格式,则只需使用并替换为空字符串。
文本内容
也是可选的…@WiktorStribiżew Wow…例如简单的解决方案!
/.+(?<=[^[]*])\s/g