我有一个javascript函数,它将Ajax Combobox中输入的文本与正则表达式相匹配。 但似乎'测试'没有按预期工作。 下面是我的代码,我没有得到我做错的地方。
<script language="javascript" type="text/javascript">
function cmbExample_OnBlur() {
var regex = "^[0-9]{1,10}$";
var sel = document.getElementById("MainTextBox").value;
alert(sel);
if (regex.test(sel)) {
alert("success");
}
else {
alert("error");
}
}
我尝试将sel转换为字符串,然后它也无法正常工作。
答案 0 :(得分:3)
尝试使用实际的正则表达式,而不是字符串。
var regex = /^[0-9]{1,10}$/;
答案 1 :(得分:2)
这不是正则表达式,这是一个字符串。正则表达式的字面意思是:
var regex = /^[0-9]{1,10}$/
或者您可以使用:
var regex = new RegExp("^[0-9]{1,10}$");
顺便说一下,如果您查看控制台(大多数系统上的 F12 ),错误消息应该已经解释过了。
答案 2 :(得分:0)
您需要使用以下内容从组合框中获取值:
document.getElementByID("SelectBoxName").options[document.getElementByID("SelectBoxName").selectedIndex].value
有点恶心,但它有效。您可以使用.text来获取文本而不是值(我认为这是您真正想要的。)
另外,其他人对正则表达式的说法是正确的。
干杯。