javascript - 關於正規表示式的問題
给我你的怀抱
给我你的怀抱 2017-07-05 10:50:08
0
2
691
<!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" class="f-text" /><input type="button"     value="是  否为两位数" />    
 </body>
 </html>

1.this.value = this.value.replace(/1/,"")中的「」表示的是什麼呢?


  1. d ↩
给我你的怀抱
给我你的怀抱

全部回覆(2)
曾经蜡笔没有小新

[^d]表示不為數字的字符,其中,d表示0-9`中的任一數字,[^...]表示對字符集取反

因此,this.value.replace(/[^d]/,"")表示,若字串的第一個字元是數字,則保留;若不是數字,則刪除

3adf
的第一個字元是數字,不會被替換掉;sadfa123
的第一個字元不是數字,會被替換為空字串""" ,即把該字元刪除

大家讲道理

""就是空的意思.replace為替換;[^d]表示非數字(^表示非,不是的意思;d表示數字)

就是當你在輸入時(每敲一下鍵盤)會觸發鍵盤事件,如果輸入的不是數字([^d]表示非數字,所以透過[^d]來判斷是不是數字)就替換(.replace為替換的意思)為空(""),所以你輸入的不是數字的話馬上被替換,不會顯示。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!