问题描述
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}))/

