我正在为document.createElement()
编写一个函数包装器,我可以在其中传入元素标签名称,例如。 'div'或传入一个完整的html字符串来创建。我有正则表达式来测试html标签的开始和结束,即'<'或'>',但现在我想进一步测试字符串没有特殊字符。
我有/^([a-zA-Z]*)?$/g
来测试匹配,但它在空字符串上失败。我认为+会抓住这个,但似乎没有。假设我之前可以测试空字符串,但是想知道是否有办法测试它。
var strings = ["div","<div>...</div>","div1","1div","div-","[div]","(div)","$div",""];
strings.forEach(function(str, i) {
/^([a-zA-Z]+)?$/.test(str)
? console.log(i, 'OK valid')
: console.log(i, 'XX invalid');
});
var re = new RegExp('^([a-zA-Z]+)?$','g');
strings.forEach(function(str, i) {
re.test(str)
? console.log(i, 'OK valid')
: console.log(i, 'XX invalid');
});
答案 0 :(得分:1)
不确定所有括号是什么但改变了?到+应该够了
var strings = ["div","<div>...</div>","div1","1div","div-","[div]","(div)","$div",""];
strings.forEach(function(str, i) {
/^[a-zA-Z]+$/.test(str)
? console.log(i, 'OK valid')
: console.log(i, 'XX invalid');
});
var re = new RegExp('^[a-zA-Z]+$','g');
strings.forEach(function(str, i) {
re.test(str)
? console.log(i, 'OK valid')
: console.log(i, 'XX invalid');
});
&#13;