我剛剛開發了一個簡單的asp.net mvc應用程序項目,僅用於英語。我想阻止用戶輸入英語以外的語言。是否有可能知道當用戶在文本框或編輯器上寫入某些內容時用戶是否輸入了其他語言以提供彈出消息?字符/語言
字符/語言
回答
你可以限制輸入框拉丁字符,但沒有自動的方法,如果用戶輸入中說一些英語,芬蘭語或挪威。他們大都使用a-z。 a-z以外的任何字符都可以給你一個指示,但某些口音也需要用英語來表示,所以它不是100%。
Google Translate公開了一個JavaScript API來檢測文本的語言。
檢查拉美26
如果你想確保任何非英文字母被提交,你可以簡單地驗證他們屬於A-Z,A-Z,0-9和正常標點範圍之外。這聽起來像你想要檢測並拒絕普通的非拉丁字符。
檢測用戶的操作系統設置,鍵盤設置不是最好的方式,因爲用戶可以連接多個鍵盤,並使用複製/粘貼。
UI驗證
在用戶界面級別,你可以創建一個jQuery的方法,將檢查一個文本框的值比你的可接受範圍以外的值。也許這就是A-Z,a-z和數字。你可以在事件onBlur上做到這一點。請記住,你可能要允許'
,.
$('#customerName').blur(function() {
var isAlphaNumeric;
//implementation of checking a-z, A-Z, 0-9, etc.
alert(isAlphaNumeric);
});
控制器驗證
如果你想在控制器級別,也能實現這一點,你可以對輸入值運行正則表達式。
public ActionMethod CreateCustomer(string custName)
{
if (IsAcceptableRange(custName))
{
//continue
}
}
public bool IsAcceptableRange(string input)
{
//whitelist all the valid inputs here. be sure to include
//space, period, apostrophe, hypen, etc
Regex alphaNumericPattern=new Regex("[^a-zA-Z0-9]");
return !alphaNumericPattern.IsMatch(input);
}
它不會識別語言,只是您輸入的英文字母中的字符也是許多其他語言共享的字符。 – 2010-09-18 19:39:42
@Mikael:同意。斯文,吉爾斯等將通過這項測試。它只會過濾掉非拉丁文的26個字符。 – 2010-09-18 19:44:48
這意味着我無法輸入標點符號?甚至空間? – 2010-09-18 20:28:00
有兩個測試你可以做。一個是找出CultureInfo的設置用戶的機器上:
http://msdn.microsoft.com/en-us/library/system.threading.thread.currentuiculture.aspx
這會給你他們目前的文化背景,這是一個開始。當然,你可以有你的設置爲「英語」,但俄羅斯依然打字,大部分信件是一樣的..
所以下一步是使用此發現的語言:http://www.google.com/uds/samples/language/detect.html
根據在線討論,這不是最大的,但它是一個開始的地方。不過,我確信那裏有更好的自然語言標識符。
使用下面的代碼:
<p>Note that this community uses the English language exclusively, so please be
considerate and write your posts in English. Thank you!</p>
谷歌翻譯被引述在兩個答案,但我想補充一點,的Microsoft Word API也可以用於檢測語言,就像字確實爲拼寫檢查。
這肯定不是最好的解決方案,因爲Microsoft Office的語言檢測功能不能很好地工作(恕我直言),但如果在每個發佈的消息上向Google或其他遠程服務發出網絡請求不是很好一個辦法。
另外,通過Microsoft Word API檢查拼寫也可能有用。如果一封郵件在用英文檢查時有大量拼寫錯誤的單詞,可能是因爲郵件是用另一種語言編寫的(或者郵件的編寫者寫得太糟糕了)。
最後,我完全同意Matti Virkkunen。最好的,也許唯一的方法來確保消息將用英文寫成要求用戶用英文寫作。否則,它與實施obscenity filters一樣糟糕。
- 1. 單字節字符語言
- 2. 打印多語言字符
- 3. 語言字符串ADT
- 4. 語言字符串解析
- 5. 從語言代碼獲取語言字符串
- 6. 用於語言的HTML特殊字符
- 7. 使用nusoap丟失語言字符
- 8. 在Mysql中使用語言字符
- 9. 字符串格式 - 練習語言 - trace32
- 10. 彙編語言字符串反轉
- 11. 跨語言字符串轉義
- 12. Android更改字符串語言
- 13. 從C語言的xml解析字符?
- 14. 語言字符串加載失敗:Recipients_failed
- 15. 如何strlen多語言字符串
- 16. 比較兩種語言字符串
- 17. 添加語言字符串wordpress
- 18. 更改字符串語言環境
- 19. MySQL按字符串語言排序
- 20. 檢查字符串內容語言
- 21. 用C語言替換空白字符
- 22. C# - 多語言字符串的「取消」
- 23. Android字符串資源多語言
- 24. Qt語言學家校對字符串
- 25. 從字符串確定腳本語言
- 26. 字符串解析爲int語言
- 27. 停用語言環境Unicode字符
- 28. GridView中的多語言字符
- 29. ML語言中的cdr字符串
- 30. 這是什麼語言/字符集?
那麼,英文中引用我的名字的文本將被禁止? – 2010-09-18 19:36:55
不,那不是我的目的。我想在網站上使用英語作爲官方語言,因爲我們公司有許多不同的人說不同的語言。名字就像你的將被接受。 – Hoorayo 2010-09-18 19:57:57
你打算檢查/過濾/傾斜西里爾文,希伯來文,波斯文,阿拉伯文,普通話等的字符? – 2010-09-19 00:14:25