MozTW 討論區
https://forum.moztw.org/

請教 Javascript 中 string test 的問題
https://forum.moztw.org/viewtopic.php?f=13&t=34920
1 頁 (共 1 頁)

發表人:  ddns001 [ 2012-03-30, 16:00 ]
文章主題 :  請教 Javascript 中 string test 的問題

想請問 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 表示全域比對, 但是都沒有更近一步的
說明, 有人有更詳細的說明嗎, 謝謝.

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/