我有2个文本框,我正在尝试创建一个JS函数来检查这些文本框是否
仅包括数字,但似乎没有任何作品!任何想法为什么??!?!
如果它们不包含任何数字,那么信息将提交。
这是我的JS功能:
function checkName(sender, args) {
var letters = "/^[0-9a-zA-Z]+$/";
var firstName = $find("<%=txtFirstName.ClientID %>");
var l_firstNametxt = firstName.get_value();
var lastName = $find("<%=txtLastName.ClientID %>");
var l_lastNametxt = lastName.get_value();
if (l_firstNametxt = letters) {
if (l_lastNametxt = letters) {
alert("nice try!");
}
}
else {
__doPostBack("<%=btnAddPerson.UniqueID %>", "");
}
}
答案 0 :(得分:3)
您的功能有几个问题。
首先,您似乎尝试使用regular expression,但在JS中,正则表达式文字声明为,而在其周围加上引号。所以使用这个:
var letters = /^[0-9a-zA-Z]+$/; // NOT var letters = "/^[0-9a-zA-Z]+$/";
其次,在您的两个if语句中,您使用=
分配值,而不是使用==
或===
运算符进行比较,在任何情况下都没有使用等于运算符进行正则表达式测试,你必须使用正则表达式方法,如.test()
:
if (letters.test(l_firstNametxt)) {
if (letters.test(l_lastNametxt)) {
通过这些更改,您的代码至少应该“正常工作”,但它仍然无法按照您的意愿执行:您说您要测试文本框是否包含“任何数字”,但是常规您尝试使用的表达式允许使用数字和字母。要测试“任何数字”,您可以使用此正则表达式:
/[0-9]/
...可以简化为/\d/
答案 1 :(得分:0)
因为你问“我正在尝试创建一个JS函数来检查这些文本框是否正确
仅包括数字“,更简单的方法是使用isNaN()
函数。
function isNumber(val) {
if(!isNaN(val))
return true;
else
return false;
}