⑴ VC++ CEdit控制項如何限制只允許輸入漢字和數字請詳細指出變數類型和所用方法,謝謝了!
CEdit類是從CWnd類繼承的,在CWnd類裡面,有一個方法OnChar(),當用戶輸入字元時該方法會被調用,你可以重寫這個方法,判斷字元自否為你想要的類型,如果不是直接返回就行了,否則直接調用基類的OnChar方法就行了。
我寫了一個MyEdit類繼承於Edit,並重寫了OnChar方法,你在代碼中將控制項的類型改為MyEdit即可完成數字和漢字的過濾,經測試可用,如有不懂可以追問。
voidMyEdit::OnChar(UINTnChar,UINTnRepCnt,UINTnFlags)
{
//TODO:在此添加消息處理程序代碼和/或調用默認值
if(nChar<='9'&&nChar>='0')//數字
CEdit::OnChar(nChar,nRepCnt,nFlags);
if(nChar>=0x4E00&&nChar<=0x9FFF)//常用字
CEdit::OnChar(nChar,nRepCnt,nFlags);
if(nChar>=0x3400&&nChar<=0x4dff)//少用字
CEdit::OnChar(nChar,nRepCnt,nFlags);
if(nChar>=0x20000&&nChar<=0x2A6DF)//少用字,歷史上使用
CEdit::OnChar(nChar,nRepCnt,nFlags);
return;
}
⑵ VC 過濾字元串內特殊符號的函數 比如雙引號
\n ------------------------- 換行
\r ------------------------- 回車
\t ------------------------- 製表符
\b ------------------------- 退格
\f ------------------------- 換頁
\0 ------------------------- 空符號
\" ------------------------- 雙引號
\'''' -------------------------單引號
\\ -------------------------反斜杠
\t 橫向跳到下一製表位置
\v 豎向跳格
\b 退格
\f 走紙換頁
\a 鳴鈴
註:
有些 ASCII 字元是不可列印的。例如退格、另起一行、警報等。C 語言提供了兩種方法來表示這種不可列印字元。
第一種方法是使用 ASCII 編碼。例如,ASCII 編碼中,7 用於表示警報:
char beep = 7;
第二種方法是使用特殊符號序列,也就是所謂的轉義字元(escape sequences)。參見下表:
轉義字元 含義
\a 警報( Alert (ANSI C) )
\b 退格(Backspace)
\f 換頁(Form feed)
\n 換行(Newline)
\r 回車(Carriage return)
\t 水平製表符(Horizontal tab)
\v 垂直製表符(Vertical tab)
\\ 反斜桿( Backslash (\) )
\' 單引號( Single quote (') )
\" 雙引號( Double quote (") )
\? 問號( Question mark (?) )
\0oo 八進制數( Octal value (o 代表一個八進制數字) )
\xhh 十六進制數( Hexadecimal value (h 代表一個十六進制數字) )
給變數賦值的時候,轉義字元必須使用單引號引住。例如:
char nl = '\n';
下面我們詳細學習每個轉移字元的含義。
\a(警報)是 ANSI C89 添加的,用於產生可聽或者可視的警報。\a 產生的效果取決於硬體。一般來說,輸出 \a 會產生鳴響。但是在某些系統,輸出 \a 不會產生任何效果,或者僅僅顯示一個特殊字元。標准明確指出,\a 不應該改變當前活躍位置(active position)。所謂活躍位置,是指顯示設備(顯示器、打字機、列印機等等)顯示下一個字元的位置。以顯示器為例,活躍位置就是指游標所處的位置,輸出 \a 不會導致游標移動位置。
\b、\f、\n、\r、\t,以及 \v 都是輸出設備控制符。退格符(\b)使當前行的活躍位置後退一個位置。換頁符(\f)使活躍位置跳到下一頁的開端。註:換頁符可用於控制列印機換頁,但不會導致 PC 機的顯示屏換頁。換行符(\n)使活躍位置跳到下一行的開端。回車符 ( \r ) 使活躍位置返回當前行的開端。水平製表符(\t)使活躍位置移動若干個位置(通常是8個)。垂直製表符(\v)使活躍位置換若干行。註:\v可用於控制列印機換若干行,但是不會導致PC機的顯示屏換行。
\\、\',以及 \" 使我們可以把 \,' 和 " 用作字元常量。如果要列印以下句子:
"\ is called 'backslash'."
我們需要使用如下語句:
printf("\"\\ is called \'backslash\'.\"");
或者
printf("\"\\ is called 'backslash'.\"");
注意,在字元串字面量中,無論寫 \' 還是 ',輸出都是一樣的。但是,在給字元變數賦值時,一定要寫 \'。例如:
char ch = '''; /* 錯誤! */
char ch = '\''; /* 正確。 */
\0oo 和 \xhh 是ASCII碼的兩種特殊表示形式。如果想用八進制ASCII碼表示字元,可以在八進制數前面加上 \ ,然後用單引號引起來。例如:
beep = '\007'; /* \007 代表 \a */
打頭的那些0可以省略,也就是說,寫成 '\07' 或者 '\7' 都一樣。無論有沒有打頭的0 ,7 都會被當成八進制數處理。
從 C89 開始,C提供了用十六進製表示字元常量的方法:在反斜桿後面寫一個 x ,然後再寫 1 到 3 個十六進制數字。例如:
nl = '\xa'; /* \xa 代表 \n */
注意:使用ASCII碼時,要注意區分數字和數字字元。例如:字元4的ASCII碼是52 ,'4' 代表字元 4 ,而不是數字4。此外,盡管 '\n' 和 '\xa' ,'\a' 和 '\007' 是等價的,但是我們應該盡可能使用 '\n' 和 '\a' ,而不要用 '\xa' 和 '\007' 。這是因為前者易懂、便於記憶,而且移植性更高。而後者只對使用ASCII碼的系統有效。
參考資料:C Primer 5th Edition
⑶ excel怎樣過濾特殊符號就和
word和excel無法插入特殊字元的解決方案
1.按[開始]菜單,[運行],輸入cmd,然後按[Enter]
2.輸入cd C:\ Program Files文件\ MICROSOFT按[Enter]鍵內
3.輸入regsvr32之後完成的辦公容室\ OFFICE11 \載入項/ U SYMINPUT.DLL完全按[Enter]鍵REGSVR32 SYMINPUT.DLL
4.輸入完畢後按之前[Enter]鍵債券
⑷ 我怎麼限定我的CEdit中只能輸入一定個數的字元
程序實例:cEdit.GetWindowTextW(m_text)獲取制CEdit中的數據voidCCEditDlg::OnBnClickedButton1(){//TODO:在此添加控制項通知處理程序代碼CStringm_text;cEdit.GetWindowTextW(m_text);if(IsNum(m_text)==true){AfxMessageBox(CString("這不是一個字母"));}else{AfxMessageBox(CString("這是一個字母"));}}boolCCEditDlg::IsNum(CStringstr){intn=str.GetLength();for(inti=0;i'9'))returnfalse;}returntrue;}
⑸ asp在過濾特殊字元情況下如何讓表單允許出現特定符號
如果這個%只是為了顯示,那麼可以把它替換成%
如果你後端用的是ADODB.RecordSet來保存數據的,那麼你可版以不必過濾這些符號,直接寫權入到資料庫里就行了,這並不會有什麼安全風險,只有在生成SQL語句時,過濾才是必要的.
⑹ C#過濾標簽的類~~過濾掉在文本框中輸入的標簽符號
過濾?
用正則表達式吧
⑺ 請教老師,excel單元格如何設置只顯示數字,其他什麼符號都不顯示。比如,-- 這樣的符號都過濾掉
可以用vba實現,當然也是可以用if函數,希望能幫到你,,
⑻ asp過濾特定符號【】之間的內容
下面的程序代碼測試通過,使用模式匹配很容易完成這樣的功能:版
<%
s="【測試權】AABBCCDD"
Set regEx = New RegExp
regEx.Pattern = "【.*】"
s=regEx.replace(s,"")
'replace s, regEx ,""
response.write s
%>
⑼ 正則表達式怎麼過濾掉符號
問題解決了,是先替換掉了符號,在正則查找的
⑽ 拼url字元串的時候,如何過濾&符號
調用escape函數即可,例如
name=escape(name)
那麼組裝以後的地址為:
url = "test.do?id=1&name=A%26B"
這樣就行了內,test.do能夠把A%26B理解為容name=A&B