用于使用 KNOCKOUTJS 验证输入文本框中非英语字符的自定义规则
Custom rule for validating an input text box for non english characters using knockoutjs
我正在使用MVC 3和knockoutjs库开发应用程序。我也在重新配置挖空验证插件。我需要验证允许的符号的输入文本值。据我所知,这些没有本机规则,因此我必须创建一个自定义规则。不好的是我在正则表达式和javascript方面的知识非常差。我需要编写一个自定义函数来验证文本框输入字段并且不允许使用非英文字符。允许使用所有其他符号。我想我将能够创建自定义规则,但我需要验证输入字段的正则表达式。任何对工作示例的帮助将不胜感激。谢谢!
不允许使用非英文字符
和
允许使用所有其他符号
对我来说似乎自相矛盾,但我会尽力帮助:)
首先,您应该考虑使用 Ajax 进行验证,因为服务器端语言通常对 Unicode 有更好的支持。如果它不是一个选项,那么首先将带有Unicode插件的XRegExp库添加到您的页面。
要创建 Unicode 感知正则表达式,请使用以下形式:
var englishLettersOrSymbols = XRegExp('[''p{^Letter}''p{Latin}]*');
这里我们说我们接受零个或几个(... *
(符号,每个符号要么是([ ... ]
(非字母(''p{^Letter}
(要么是基本拉丁字母(''p{Latin}
(的字母。
现在,您的自定义验证规则将如下所示:
ko.validation.rules['englishLettersOrSymbols'] = {
validator: function(value){
var rule= XRegExp('[''p{^Letter}''p{Latin}]*');
return rule.test(value);
},
message: 'Sorry, {0} this is not valid'
};
您将在代码中使用它,如下所示:
var vewModel = {
// ...
myField: ko.observable().extend({englishLettersOrSymbols: true}),
// ...
};
编辑:从正则表达式中删除|
。谢谢,@slevithan。这本身并不是一个错误,因为''p{^Letter}
已经包含了|
符号,因此,正则表达式仍然有效。然而,这很有误导性。
相关文章:
- 在JavaScript中输出转义字符
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 使用RegExp查找url中的字符
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- 在List.js中使用非英语字符
- 如何检查字符串是否包含非英语字符列表
- 如何在javascript中按正确的顺序连接波斯语字符和英语字符
- 用于使用 KNOCKOUTJS 验证输入文本框中非英语字符的自定义规则
- 如何在 HTML 文本区域中启用非英语字符的键入
- 如何排除特殊字符并允许西班牙语/英语字母
- Perl 和 HTML/JavaScript 中的特殊字符(非英语)
- 用javascript将俄语(unicode)字符转换为英语
- 如何在按键时转义特殊字符和非英语字符
- 如何在Javascript中验证包含非英语(UTF-8)字符的电子邮件地址
- javascript转义非英语以外的特殊字符
- 使用jquery为非英语字符创建单词搜索谜题