javascript - 关于正则表达式的问题
问题描述
<!DOCTYPE html> <html lang='en'> <head> <meta charset='utf-8' /> <title>判断数字是否为两位数</title> <style type='text/css'>body {font: 12px/1.5 arial;text-align: center;}.f-text {width: 50px;border: 1px solid #ccc;background: #f0f0f0;font-family: inherit;padding: 3px;margin-right: 10px;}</style><script type='text/javascript'>window.onload = function() {var aInput = document.getElementsByTagName('input');var aSpan = document.getElementsByTagName('span')[0];var i = 0;aInput[0].onkeyup = function() { this.value = this.value.replace(/[^d]/,'');} aInput[1].onclick = function() {(aInput[0].value == '') ?alert('请输入数字!') :alert(/^d{2}$/.test(parseInt(aInput[0].value)) ? '√ 是两位数' : '这是' + aInput[0].value.length + '位数');}};</script></head> <body> <input type='text' /><input type='button' value='是 否为两位数' /> </body> </html>
1.this.value = this.value.replace(/1/,'')中的“”表示的是什么呢?
d ↩问题解答
回答1:[^d]表示不为数字的字符,其中,d表示0-9`中的任一数字,[^...]表示对字符集取反
因此,this.value.replace(/[^d]/,'')表示,若字符串的第一个字符是数字,则保留;若不是数字,则删掉
例如,2asd、3adf的第一个字符是数字,不会被替换掉;sadf、a123的第一个字符不是数字,会被替换为空字符串'',即把该字符删掉
回答2:''就是空的意思.replace为替换;[^d]表示非数字(^表示非,不是的意思;d表示数字)
就是当你在输入时(每敲一下键盘)会触发键盘事件,如果输入的不是数字([^d]表示非数字,所以通过[^d]来判断是不是数字)就替换(.replace为替换的意思)为空(''),所以你输入的不是数字的话话马上被替换,不会显示。
相关文章:
1. css - 列表li与li之间的间距怎么设置?2. docker - 如何修改运行中容器的配置3. 关docker hub上有些镜像的tag被标记““This image has vulnerabilities””4. 前端 - 怎样让scale缩小的元素不占据原来的空间?5. debian - docker依赖的aufs-tools源码哪里可以找到啊?6. HTML表单操作标签调用父相对URL7. DADB.class.php文件的代码怎么写8. javascript - Js对象怎么通过value值拿到key值?9. python3的各种库的官方文档中文版在哪儿可以找到10. php - 两个表数据怎么插到一个模板中,并按时间排序?

网公网安备