由逗号

时间:2017-03-30 19:00:17

标签: javascript regex

我正在尝试获取只接受具有特定模式的字符的正则表达式,例如用逗号分隔的两个字符,但我无法得到它。

这里我包含了可接受的刺痛

string = ab,ca,ls,gz,tv......

我试过了:

/^([a-zA-Z]{2},)|([a-zA-Z]{2})*$/ 

但它没有按预期工作。

3 个答案:

答案 0 :(得分:2)

尝试使用primitive types代替(模式中的var string = 'ab,ca,ls,gz,tv' var regex = /^[a-z]{2}(?:,[a-z]{2})*$/i console.log(regex.test(string)) //=> true有问题):

fGroup.on('click',function(e){
    var txt = '';
    fGroup.eachLayer(function(layer){
        txt = txt + layer.feature.properties.School + ' ; ';
    });
    alert(txt);
});

答案 1 :(得分:0)

试试这个。

/^[a-z]{2}(,[a-z]{2})*$/i

var string1 = "ab,ca,ls,gz,tv"
var string2 = "ab,c,ls"
var string3 = "ab,ca"

var regex = /^[a-z]{2}(,[a-z]{2})*$/i

document.getElementById("test").innerHTML = 
    regex.test(string1) + "<br>" + // true
    regex.test(string2) + "<br>" + // false
    regex.test(string3)            // true
<p id="test"></p>

答案 2 :(得分:0)

如果我正确理解你,那么你试图获取(捕获)2个字符,条件是它们在逗号的范围内或在开头或结尾处一行:

<p id="X">X:</p>
<p id="Y">Y:</p>
<!--<form>
Timeline Item: <input type="text" name="item"><br>
Timeline Date: <input type="date" name="date"><br>
</form>-->
<div id="bodySim">
<canvas id="DemoCanvas" ></canvas>
</div>

Live preview

&#13;
&#13;
(?:^|,)([a-zA-Z]{2})(?=,|$)
&#13;
&#13;
&#13;

以上输出:

  

AB

     

CA

     

LS

     

GZ

     

TV