match函数的返回值和使用的正则表达式是不是含有g标志有关系; 如果没有g标志,如果字符串匹配,则返回的结果是一个数组,数组的元素分别是匹配的完整子串,第一个捕获型括号的内容,第二个捕获型括号的内容,第三个捕获型括号的内容...所以数组的长度是捕获型括号的数量+1; 如果有g标志,如果字符串匹配,则返回结果是一个数组,数组的元素分别是匹配的第一个完整子串,匹配的第二个完整子串,匹配的第三个完整子串...所以数组的长度是匹配的次数; 일치하는 항목이 없으면 null을 반환합니다.
따라서 g를 사용한 후 결과는 와 일치하는 전체 하위 문자열만 반환하고 캡처 괄호의 내용은 포함하지 않으므로 일치 기능이 이를 수행할 수 없습니다.
으아악
이렇게 보세요
으아악/(([^()]+))/g
/[^()]+(?=))/g
개인 테스트 후 피험자의 요구 사항을 충족할 수 있습니다match
函数的返回值和使用的正则表达式是不是含有g
标志有关系;如果没有
g
标志,如果字符串匹配,则返回的结果是一个数组,数组的元素分别是匹配的完整子串
,第一个捕获型括号的内容
,第二个捕获型括号的内容
,第三个捕获型括号的内容
...所以数组的长度是捕获型括号的数量+1
;如果有
g
标志,如果字符串匹配,则返回结果是一个数组,数组的元素分别是匹配的第一个完整子串
,匹配的第二个完整子串
,匹配的第三个完整子串
...所以数组的长度是匹配的次数
;일치하는 항목이 없으면 null을 반환합니다.
따라서
g
를 사용한 후 결과는 와 일치하는 전체 하위 문자열만 반환하고 캡처 괄호의 내용은 포함하지 않으므로 일치 기능이 이를 수행할 수 없습니다.