gpt4 book ai didi

javascript - 使用 knockoutjs 验证非英文字符输入文本框的自定义规则

转载 作者:行者123 更新时间:2023-11-29 22:24:12 24 4
gpt4 key购买 nike

我正在开发一个使用 MVC 3 和 knockoutjs 库的应用程序。我也在重新研究 knockout 验证插件。我需要验证允许符号的输入文本值。据我所知,这些没有本地规则,因此我将不得不创建一个自定义规则。不好的是我对正则表达式和javascript的了解很差。我需要编写一个自定义函数来验证文本框输入字段并且不允许使用非英文字符。所有其他符号都是允许的。我想我可以创建自定义规则,但我需要验证输入字段的正则表达式。对工作示例的任何帮助将不胜感激。谢谢!

最佳答案

does not allow non-english characters

All the other symbols are permitted

似乎与我自相矛盾,但我会尽力提供帮助:)

首先,您应该考虑使用 Ajax 进行验证,因为服务器端语言通常对 Unicode 有更好的支持。如果这不是一个选项,那么首先添加 XRegExp图书馆 Unicode plugin到您的页面。

要创建可识别 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 - 使用 knockoutjs 验证非英文字符输入文本框的自定义规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com