gpt4 book ai didi

javascript - 字母数字和某些特殊字符的正则表达式

转载 作者:行者123 更新时间:2023-12-01 03:24:52 25 4
gpt4 key购买 nike

我尝试仅允许使用英文字母、数字值和以下字符:

- # $ % & * ( ) [ ] , ./- _ +

我设法想出了以下代码

<form id="accountForm" action="">
<input type="text" name="my_input">
</form>

$(function() {

$.validator.addMethod("accept", function(value, element, param) {
return value.match(new RegExp("." + param + "$"));
}, 'Only English is allowed');


$( "#accountForm" ).validate({
rules: {
my_input : {
required: true,
accept: '[a-zA-Z0-9@%#&()/+*$,._\\-]+$'
}

}
});
});

但是有一些问题:

  1. 如果我尝试添加 [ ],代码将完全停止工作
  2. 如果我添加上面列表中或不在上面列表中的其他字符,在任何字母后面它不会显示任何错误消息。示例:ABC你好
  3. 如果我只输入一个字母,则会出现错误。

这是我的代码的演示:https://jsfiddle.net/w2p1rdbd/1/

您能告诉我如何解决这个问题吗?

非常感谢!

最佳答案

我认为没有必要在接受方法中操作正则表达式。 (new RegExp("."+ param + "$"))。这将使您的正则表达式像 .[a-zA-Z0-9@%#&()/+*$,._\\-]+$$.

并且行的开头应使用 ^ (与字符串的开头匹配)锚定,以禁止开头出现外来字符。

我删除了示例中的 .$,将 ^ 添加到“原始”正则表达式中(以 ^[a-zA-Z0-9@%#&()/+*$,._\\-]+$) 并且它似乎正在工作。

您的代码已修改:

$(function() {

$.validator.addMethod("accept", function(value, element, param) {
return value.match(new RegExp(param));
}, 'Only English is allowed');


$( "#accountForm" ).validate({
rules: {
my_input : {
required: true,
accept: '^[a-zA-Z0-9@%#&()/+*$,._\\-]+$'
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>

<form id="accountForm" action="">
<input type="text" name="my_input">
</form>

关于javascript - 字母数字和某些特殊字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44898749/

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