MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2024-04-18, 17:48

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 1 篇文章 ] 
發表人 內容
文章發表於 : 2012-03-30, 16:00 
離線

註冊時間: 2012-03-30, 15:37
文章: 4
想請問 Javascript 中關於 string test 的問題, 程式如下 :

代碼:
<html>
<head>
<script language="javascript">
function dat_check()
{
    var invalid_ascii = /[^\x30-\x39]/g;

    if(document.show_form.dat_name.value != "")
    {
       if(invalid_ascii.test(document.show_form.dat_name.value) == true)
          alert("fail");
       else
          alert("pass");
    }
}
</script>
</head>
<body>
  <form name="show_form">
    <input type="text" name="dat_name" value="">
    <input type="button" name="btn_submit" value="ok" onclick="dat_check()">
  </form>
</body>
</html>


這是測試使用者輸入的內容是否為數字(0~9),
是的話顯示 pass, 否則顯示 fail.

測試環境 windows xp, firefox 3.6.28, ie6
firefox :
輸入數字, 動作正常, 會顯示 pass, 但是輸入非數字, 假設輸入一個 a,
之後按 ok -> 顯示 fail, 再按 ok -> 顯示 pass, 再按 ok -> 顯示 fail..,
如此循環.
ie :
輸入數字, 動作正常, 會顯示 pass, 輸入非數字, 動作正常, 會顯示 fail.

如果把 /[^\x30-\x39]/g 改成 /[^\x30-\x39]/ 則就完全正常.

請問這是 firefox 還是 ie 的問題阿.

另外請問一下, 在網路上查到說 g 表示全域比對, 但是都沒有更近一步的
說明, 有人有更詳細的說明嗎, 謝謝.


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 1 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 7 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群