搜索

首页  >  问答  >  正文

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

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

var str1 = '789';
console.log(re.test(str1));//返回true
var str2 = '(789)';
console.log(re.test(str2)); // 返回true


var str3 = '(788';
console.log(re.test(str3)) //返回true;
var str4 = '789)';
console.log(re.test(str4))  //返回true;

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

var re 应该怎样写?


高洛峰高洛峰2940 天前771

全部回复(3)我来回复

  • 三叔

    三叔2016-11-10 14:11:55

    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)"));


    回复
    0
  • 欧阳克

    欧阳克2016-11-10 14:11:04

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

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


    回复
    0
  • 三叔

    三叔2016-11-10 14:10:48

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

    回复
    0
  • 取消回复