查看積分策略說明發表回覆
Discuz! 代碼
提示插入
直接插入
說明訊息

插入粗體文本 插入斜體文本 插入下劃線 置中對齊 插入超級連結 插入信件位址 插入圖像 插入 flash 插入代碼 插入引言 插入列表
刪除線 直線分隔線 虛線分隔線
    
添加文字底框
內容 [字數檢查]:

表情符號

更多 Smilies
字型大小 |||
溫馨提示:本區開放遊客瀏覽。


文章關鍵字 : [功能說明]
(關鍵字可加強搜索準確性, 如關鍵字多於一組, 請以 , 作分隔, e.g. : 阿笨,shiuh,第一笨)

 關閉 URL 識別 | html 禁用
 關閉 表情符號 | 表情符號 可用
 關閉 Discuz! 代碼 | Discuz! 代碼 可用
使用個人簽名
接收新回覆信件通知
推薦放檔網絡空間

檔案(Torent, zip等)
  1. freedl
  2. multiupload
  3. btghost
  4. 便當狗
  5. mediafire
  6. pillowangel
圖片(JPG, GIF等)
  1. hotimg
  2. tinypic
  3. mousems2
  4. imageshack
  5. imm.io
>>>歡迎推薦好用空間


最新10篇文章回顧
Litfal

 發表於 2009-11-11 03:34 AM

^(\\d+)(\\.\\d+)?$
我是這樣寫的...沒學過,總覺得我寫得比較奇怪...
當初配合wiki和MSDN研究了很久

^是字串開始,$是字串結束
d是0~9的數字
可以把表達式拆成整數與小數兩個部分
(\\d+)

(\\.\\d+)?

(\\d+)很簡單,就是整數部分為1個以上的0~9組成
(\\.\\d+)? 最後的問號代表(\\.\\d+)的小數點部分只能出現一次,或完全不具有小數點部分
\\.就是小數點,
d+就是小數點後為1個以上的0~9組成,這邊我比較龜毛,如果有輸入小數點則小數點後方一定要輸入數字,否則用d*即可。

[Litfal 在  2009-11-11 03:45 AM 作了最後編輯]


charleshwu

 發表於 2009-9-7 10:07 PM

直接跟以下的Regexp比較即可
^\d+(\.\d*)\?$

最好前面加上^以確保前面沒有附加別的字
同樣的後面加$以標示結尾比較好
若你前後允許空白可以前後將上\\s*如用下面的Regexp
^\s*\d+(\.\d*)?\s*$

有興趣可以參考 Oreilly 的 Mastering Regular Expressions 3rd ISBN: 0-596-52812-4


leacks

 發表於 2009-8-30 11:41 PM

沒標明是要哪種語言,我來亂入
vc++ .net

想的到的
.12345 x
012345 x
主要大概是補上這兩個,當然這方面要把視為無錯誤也是可行
另外0.1230 <--?在想要不要也加入

看來我的程式還是很差,寫這麼長(雖然有小小努力一下簡化&速度考慮)
不知道能不能更有效率一些

        private: System::Void TextCheck() {
                      array<Char>^ATemp;
                          int i,j=0;
                          ATemp=(textBox1->Text)->ToCharArray();
                          for(i=0;i<ATemp->GetLength(0);i++)
                             {
                                  if(ATemp[i]==0x2E)
                                    {
                                         j++;
                                         if(j>1)
                                           {
                                            MessageBox::Show(L"只能輸入一個小數點",L"輸入錯誤");
                                                return;
                                           }
                                    }
                                  else
                                    {
                                         if((ATemp[i]<0x30)||(ATemp[i]>0x39))
                                       {
                                            MessageBox::Show(L"只能輸入數字與小數點",L"輸入錯誤");
                                            return;
                                       }
                                    }
                             }
               i--;
                       if(j!=0)
                             {
                              if((ATemp[i]==0x2E)||(ATemp[0]==0x2E))
                                    {
                                 MessageBox::Show(L"第一位或最後一位數不得為小數點",L"輸入錯誤");
                                 return;
                                    }
                             }
                           else
                             {
                              if(ATemp[0]==0x30)
                                    {
                                 MessageBox::Show(L"第一位數不得為0",L"輸入錯誤");
                                 return;
                                        }
                             }
                          
                         }


dayi

 發表於 2009-8-29 11:32 PM

功力尚淺,談不上開課啦
我也沒有學過
都是翻網路上的資料
互相研究啦


ROACH

 發表於 2009-8-29 10:44 AM

當初沒學過這種正規法
有點搞不懂
查的好多資料哦
dayi你要不要開課..ccc


dayi

 發表於 2009-8-29 10:26 AM

這個正規表示法還會有一點點小問題
使用者可以輸入一次以上的小數點
ex: 12.34.56.78
可以考慮再加個次數{0,1}的限制式上去


ROACH

 發表於 2009-8-29 09:45 AM

前幾天寫程式因為使用者常會在輸入數量的文字方塊
輸入一些不是數字的資料導致後續計算造成錯誤
後來本想直接用JavaScript判斷該文字方塊丟出錯誤訊息就好
後來又看到的這個作法
這個做法只能輸入0~9任何一個數字
但就是不能輸入小數點

後來經過研究後改成的下面方式
給大家參考一下
如果您的網頁需要那種
只能輸入數字跟小數點
不要使用者輸入數字以外的
可以用下列方式

<input type=text name=t1 size=5 onkeypress="return onKeyPressBlockNumbers(event);">


<Script>
function onKeyPressBlockNumbers(e) //限制只能key數字
{
var key = window.event ? e.keyCode : e.which;
var keychar = String.fromCharCode(key);
reg = /\d|\./;
return reg.test(keychar);
}
</Script>





所在時區為 GMT+8, 現在時間是 2024-11-22 12:06 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.014011 second(s), 6 queries , Qzip disabled