iT邦幫忙

0

表單確定送出時,表單檢查問題

請教各位一個問題,一般來說若我有一個表單,我為了讓使用者能正確輸入資料的話,應如何設計較好呢?
例如:
1、使用者資料應輸入為半形
2、電話限制,例如02-22222222,要輸入正確才可以存。

目前只想到這些,但不知要用JavaScript 或JQuery時,要怎麼寫比較好....

不好意思,再麻煩各位解惑一下,請問各位使用者基本資料輸入的部份都怎麼去控管,儘量讓使用者輸入正確的資料

google 搜尋 jquery.validate 找到適合 套用上去就好 剩下再些微調就好

1 個回答

7
dragonH
iT邦超人 6 級 ‧ 2020-05-13 14:12:43

1、使用者資料應輸入為半形

str="中文;;a"     
alert(str.match(/[\u0000-\u00ff]/g))     //半形   
alert(str.match(/[\u4e00-\u9fa5]/g))     //中文   
alert(str.match(/[\uff00-\uffff]/g))     //全形 

參考

2、電話限制,例如02-22222222,要輸入正確才可以存

正則

基本款

我隨便寫的

^[0-9]{2}-[0-9]{7}$

然後不管前端寫啥

data 到後端還要再檢查一次

永遠不要相信來自前端的東西

看更多先前的回應...收起先前的回應...
listennn08 iT邦研究生 3 級 ‧ 2020-05-13 14:48:00 檢舉

補充一下 台灣室話區碼可能2-3碼 號碼可能會到 8 碼
要準確的話就

^[0-9]{2,3}-[0-9]{7,8}$

/images/emoticon/emoticon37.gif

dragonH iT邦超人 6 級 ‧ 2020-05-13 14:53:29 檢舉

阿 對吼

感謝 listennn08大

/images/emoticon/emoticon32.gif

klm2242 iT邦研究生 1 級 ‧ 2020-05-13 16:33:01 檢舉

謝謝您
請問像您所輸入的資料^[0-9]{2}-[0-9]{7}$
這些有個專有名詞嗎??我想瞭解一下,再下去寫!!@@
另外是,您剛剛有講,永遠不要相信前端輸入的資料,那後端我要做哪些預防呢?可否提供一些建議…

dragonH iT邦超人 6 級 ‧ 2020-05-13 16:52:24 檢舉

這些有個專有名詞嗎??我想瞭解一下,再下去寫!!@@

就是正則表達式 或 RegExp

另外是,您剛剛有講,永遠不要相信前端輸入的資料,那後端我要做哪些預防呢?可否提供一些建議…

最基本的

就是在後端再做一次

你在前端所做的那些檢查

因為你沒辦法知道到後端的那些data

一定有經過你前端的驗證

有可能是直接 call 你的 api 的

在進階一點

可以去研究 sql injection

淺水員 iT邦新手 1 級 ‧ 2020-05-13 17:38:02 檢舉

有些罕見字其實超過 unicode 0xFFFF 的

正解,基本並不會特別去判斷是不是全形的。
畢竟全形全部要判斷並不太好判斷。但判斷「英數」反而比較單純。

klm2242 iT邦研究生 1 級 ‧ 2020-05-14 14:05:33 檢舉

這樣啊!!!!如果不好判斷是否為全形的話,有什麼其他方式可以讓使用者儘量把資料輸入半形呢?

dragonH iT邦超人 6 級 ‧ 2020-05-14 14:31:17 檢舉

UI 顯示 + 基本正則 + 特殊字檢查

klm2242 iT邦研究生 1 級 ‧ 2020-05-19 11:08:56 檢舉

好的,謝謝您

我要發表回答

立即登入回答