regex.test()函数没有给出正确的结果
regex.test() function not giving proper result
我想我可以通过显示代码来解释我的疑虑,而不是对它进行解释::
HTML:
<!DOCTYPE html>
<html lang='en-US'>
<head>
<title>Building Web Page for Client</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="css.css">
</head>
<body>
<form>
<label for="message">Enter the banner Message: </label>
<input type="text" name="userMessage" id="message" maxlength="32"><span></span><!--Form validation help text field--><br />
<label for="zipcode">Enter the Zip Code: </label>
<input type="text" name="userZip" id="zipcode" maxlength="5"><span></span><!--Form validation help text field--><br />
</form>
<script type="text/javascript" src="javascript.js"></script>
<div id="testElement"></div>
</body>
</html>
Javascript::
//Code block for element declarers for special function checkers
var inputList = document.getElementsByTagName('input');
var zipField = document.getElementById('zipcode');
var regexForZip = /^'d{5}$/;
zipField.onblur = zipChecker;
function zipChecker(){
if(checker1 && checker2){
if(!(regexForZip.test(zipField)))
inputList[1].nextElementSibling.textContent = 'You can only enter numbers';
else
inputList[1].nextElementSibling.textContent = '';
}
}
现在,HTML非常简单,javascript更简单。现在,你能看看checker1
和checker2
布尔值吗?这两个都是真的(很抱歉没有将它们包含在这个代码中,代码有点大)。
我定义了一个正则表达式,它只包含5位数字,不包含其他数字。现在我要做的是尝试使用第二个输入元素,无论用户输入什么,我都只检查5位数字。根据代码,如果输入与正则表达式不匹配,则下一个<span>
标记将具有提示用户的文本,否则,它将为空。
注意:在这种情况下,输入将为5个字符长。
现在的问题是:无论我输入什么,页面都会提示我只输入数字,这是没有意义的。假设我输入11111。它告诉我,如果我输入了除数字之外的任何其他字符,它应该告诉我什么。
这里面有什么问题?
您正在针对DOM Element
运行RegExp
if (!regexForZip.test(zipField))
您可能想要测试的是元素的值,它是string
:
if (!regexForZip.test(zipField.value))
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript Regexp.test返回意外结果
- 为什么 HTML5 checkValidity() 从 JavaScript regexp.test() 返回不同的结果
- 如何在 A(C.test) 中使用 c.test() 获得相同的结果
- regex.test()函数没有给出正确的结果
- 为什么在调用.test()方法时,将JavaScript正则表达式保存到变量会产生不同的结果
- 为什么 “g” 修饰符在调用 test() 两次时给出不同的结果
- 为什么“pattern.test(name)”连续调用的结果是相反的?
- 为什么在循环regexObj.test(str)时记录每次迭代的不同结果
- 如何在jQuery中选择$('[name="test"]')表结果