javascript - 正则表达式在javascript中一次又一次地失败
问题描述
我有一个名字和姓氏的正则表达式。即使我根据正则表达式给出正确的输入,它也会失败。我尝试更改不同的正则表达式,但仍然失败。对于测试,我什至使用了唯一的数字正则表达式,但仍然失败。下面是我正在使用的代码。
<form id="register_form" action="{{url('/register')}}" method="post" accept-charset="UTF-8">
<div class="col-sm-6">
<div class="form-group">
<label for="name">Name</label>
<input type="text" id="first_name" class="form-control" placeholder="Enter Name" name="first_name">
</div>
</div>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/additional-methods.js"></script>
<script type="text/javascript">
$.validator.addMethod(
"regex",
function(value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"Number Not valid."
);
$("#register_form").validate({
rules: {
first_name: {required:true, minlength:2, regex:"^[a-zA-Z]+((\\s|\\-)[a-zA-Z]+)?$"},
},
messages: {
first_name:{required:'First name is required',minlength:'First name should contain atleast two alphabets',regex:'Only alphabets allowed and it should not start with space.'},
}
);
</script>
我失败的输入是 Raj Shah,这应该可以正常工作。我检查了重复的输入 ID,但没有。我在那里检查了在线测试仪上的正则表达式,它工作正常。
解决方案
虽然您的正则表达式没有错误并且您的输入应该通过,但您似乎遇到了验证器逻辑问题。我不确定这是否会有所帮助,但我建议将regex
参数和regexp
参数命名为相同的名称,以防万一出现问题,然后regexp
在验证方法之外编译一次。
$.validator.addMethod(
"regex",
function(value, element, regex) {
return this.optional(element) || regex.test(value);
},
"Number Not valid."
);
$("#register_form").validate({
rules:
{
first_name: {
required:true,
minlength:2,
regex:/^\p{L}+((\s|-)\p{L}+)?$/u},
},
messages: {
first_name:{
required:'First name is required',
minlength:'First name should contain at least two letters',
regex:'Only letters allowed and it should not start with space.'},
});
推荐阅读
- php - 如何链接到页面的特定部分 HTML PHP
- c# - 当后端代码中的简单键值变量工作相同时,为什么要使用 redis 作为缓存层?
- google-apps-script - Google Slides Apps 脚本检索页面中的形状
- python-3.x - 在 KNeighborsClassifier 中使用自定义指标时,我不断收到“TypeError:只有整数标量数组可以转换为标量索引”
- java - JavaFX - 在使用选项卡时将 GUI 拆分为单独的类
- jquery - 通过函数调整电子窗口大小
- scheme - 匹配方案中的括号
- android - 当我使用 adb 显示 /sys/kernel/debug/tracing/available_filter_functions 时没有这样的设备
- python - 初始化以迭代抽象pyomo模型中的集合?
- angular-cli - 运行 ng serve -o 时出现错误