[問題] 允許一組有負數+小數點的數字

看板RegExp (正規表示式 Regular Expression)作者 (罪雲樵)時間9年前 (2014/08/05 10:53), 9年前編輯推噓3(303)
留言6則, 4人參與, 最新討論串1/1
/* 聽說註明使用的語言、環境 * 問題有可能較容易被解決... */ 語言:使用javascript+html。 問題: 可輸入有負數、小數點的數字。 目前卡在不知道要怎麼讓欄位允許負數; 而且負數只允許在最左邊出現,其他位置不允許輸入。 向各家高手指教了,謝謝。 ---------------------------------------------------- 目前程式: <input type="text" onkeyup="return ValidateFloat(this, value);"/> <script> function ValidateFloat(e, pnumber){ if(!/^\d+[.]?\d*$/.test(pnumber)){ var newValue=/^\d+[.]?\d*/.exec(e.value); if (newValue!=null){ e.value =newValue; }else{ e.value =""; } } return false; } </script> -- 習慣一個人在房間裡,安靜地享受書的內容… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.186.7 ※ 文章網址: http://www.ptt.cc/bbs/RegExp/M.1407207217.A.69C.html ※ 編輯: terrybob (211.75.186.7), 08/05/2014 10:54:48

08/05 14:30, , 1F
最前面加上 [-]? 這樣?
08/05 14:30, 1F

08/05 14:33, , 2F
其實好像不用[] ^-?\d+\.?\d*$
08/05 14:33, 2F

08/05 17:40, , 3F
這樣會至少需要輸入一個數字才能輸入負號
08/05 17:40, 3F

08/12 08:16, , 4F
用 \-?(?:[0-9])+(?:\.[0-9]+)? 試試看?
08/12 08:16, 4F

08/12 08:18, , 5F
如果要可以單獨一個負號就是 \-?(?:[0-9])*(?:\.[0-9]+)?
08/12 08:18, 5F

08/14 11:01, , 6F
晚來的感謝,感謝上述高手們的相助!!!
08/14 11:01, 6F
文章代碼(AID): #1Ju4SnQS (RegExp)
文章代碼(AID): #1Ju4SnQS (RegExp)