正则表达式 匹配的字符要同时存在"()",才能返回true

浏览:38日期:2023-06-09

问题描述

var re = /(?[0-9]{3})?/var str1 = '789';console.log(re.test(str1));//返回truevar str2 = '(789)';console.log(re.test(str2)); // 返回truevar str3 = '(788';console.log(re.test(str3)) //返回true;var str4 = '789)';console.log(re.test(str4)) //返回true;

我想第3个和第4个结果返回false ,就是要'()'同时存在或不存在才能返回true,只有一个'('或')'返回flase

var re 应该怎样写?

问题解答

回答1:

var re = /(([0-9]{3}(?=)))|(^[0-9]{3}$)/g;console.log(re.test('789'));console.log(re.test('(789'));console.log(re.test('789)'));console.log(re.test('(789)'));

回答2:

var re = /(d{3})|^(?!()d{3}(?!))/

先匹配'(789)'情况,在匹配'789'

回答3:

var re = /[0-9]{3}|(([0-9]{3}))/

相关文章: