javascript - 關(guān)于正則表達(dá)式的問題
問題描述
<!DOCTYPE html> <html lang='en'> <head> <meta charset='utf-8' /> <title>判斷數(shù)字是否為兩位數(shù)</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('請(qǐng)輸入數(shù)字!') :alert(/^d{2}$/.test(parseInt(aInput[0].value)) ? '√ 是兩位數(shù)' : '這是' + aInput[0].value.length + '位數(shù)');}};</script></head> <body> <input type='text' /><input type='button' value='是 否為兩位數(shù)' /> </body> </html>
1.this.value = this.value.replace(/1/,'')中的“”表示的是什么呢?
d ?問題解答
回答1:[^d]表示不為數(shù)字的字符,其中,d表示0-9`中的任一數(shù)字,[^...]表示對(duì)字符集取反
因此,this.value.replace(/[^d]/,'')表示,若字符串的第一個(gè)字符是數(shù)字,則保留;若不是數(shù)字,則刪掉
例如,2asd、3adf的第一個(gè)字符是數(shù)字,不會(huì)被替換掉;sadf、a123的第一個(gè)字符不是數(shù)字,會(huì)被替換為空字符串'',即把該字符刪掉
回答2:''就是空的意思.replace為替換;[^d]表示非數(shù)字(^表示非,不是的意思;d表示數(shù)字)
就是當(dāng)你在輸入時(shí)(每敲一下鍵盤)會(huì)觸發(fā)鍵盤事件,如果輸入的不是數(shù)字([^d]表示非數(shù)字,所以通過[^d]來(lái)判斷是不是數(shù)字)就替換(.replace為替換的意思)為空(''),所以你輸入的不是數(shù)字的話話?cǎi)R上被替換,不會(huì)顯示。
相關(guān)文章:
1. mysql - 請(qǐng)問數(shù)據(jù)庫(kù)字段為年月日,傳進(jìn)的參數(shù)為月,怎么查詢那個(gè)月所對(duì)應(yīng)的數(shù)據(jù)2. node.js - win 下 npm install 遇到了如下錯(cuò)誤 會(huì)導(dǎo)致 無(wú)法 run dev么?3. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?4. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過段時(shí)間會(huì)消失是什么情況?5. [python2]local variable referenced before assignment問題6. Python2中code.co_kwonlyargcount的等效寫法7. html - 移動(dòng)端radio無(wú)法選中8. php - 微信開發(fā)驗(yàn)證服務(wù)器有效性9. javascript - vue+iview upload傳參失敗 跨域問題后臺(tái)已經(jīng)解決 仍然報(bào)403,這是怎么回事啊?10. mysql - 如何在有自增id的情況下,讓其他某些字段能不重復(fù)插入
