我正在尝试获取只接受具有特定模式的字符的正则表达式,例如用逗号分隔的两个字符,但我无法得到它。
这里我包含了可接受的刺痛
string = ab,ca,ls,gz,tv......
我试过了:
/^([a-zA-Z]{2},)|([a-zA-Z]{2})*$/
但它没有按预期工作。
答案 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>
(?:^|,)([a-zA-Z]{2})(?=,|$)
&#13;
以上输出:
AB
CA
LS
GZ
TV