Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 删除空白并在验证规则之前更新值_Jquery_Regex_Validation_Isbn - Fatal编程技术网

Jquery 删除空白并在验证规则之前更新值

Jquery 删除空白并在验证规则之前更新值,jquery,regex,validation,isbn,Jquery,Regex,Validation,Isbn,我有一个ISBN查询。它必须是10个字符。我有一个自定义的验证规则来检查这一点。但我的很多客户都在复制和粘贴,当他们这样做时,他们往往会在开始或结束时获得额外的空间。所以我想检查字符串前后的空格,并首先更新它。然后运行正则表达式。如果失败(不是字母数字或超过10位数),则显示错误消息 以下是我当前的自定义验证规则: jQuery.validator.addMethod( "isbn10rule", function(value, element) { var isValid = /^[a

我有一个ISBN查询。它必须是10个字符。我有一个自定义的验证规则来检查这一点。但我的很多客户都在复制和粘贴,当他们这样做时,他们往往会在开始或结束时获得额外的空间。所以我想检查字符串前后的空格,并首先更新它。然后运行正则表达式。如果失败(不是字母数字或超过10位数),则显示错误消息

以下是我当前的自定义验证规则:

jQuery.validator.addMethod(
"isbn10rule",
function(value, element) {
    var isValid = /^[a-zA-Z0-9]{10}$/.test(value);
    return this.optional(element) || isValid;
},
"Must be exactly 10 characters and only letters and numbers"
);
我不希望答案是针对范围限制值的测试。我需要在验证运行之前更新该值。

例如:字符串为“0940087537”;如果我尝试将其粘贴到字段中,它会立即显示“必须正好是10个字符,并且只有字母和数字”。但如果它先去掉那个空格,那么它会看到只剩下10个字符。

您可以使用如下Javascript方法:

function(value, element) {
    var trimmed_value = value.trim();
    var isValid = /^[a-zA-Z0-9]{10}$/.test(trimmed_value);
    return this.optional(element) || isValid;
}
trim()
方法删除字符串两侧的空白

注意:trim()方法不会更改原始字符串


希望这有帮助

首先修剪值并更新元素。然后测试相同的值

function(value, element) {
    var trimmed_value = value.trim();
    $(element).val(trimmed_value);
    var isValid = /^[a-zA-Z0-9]{10}$/.test(trimmed_value);
    return this.optional(element) || isValid;
}

在运行正则表达式之前修剪输入:
/^[a-zA-Z0-9]{10}$/.test(value.Trim())@WiktorStribiżew我如何投票否决你?你显然没有读过这个问题。我不仅仅是想删减空白。我知道怎么做。我想在元素运行正则表达式之前自动更新它…而不仅仅是在修剪后的值上运行正则表达式。然后修剪并更新元素值。就这么简单。感谢Saumya,但正如你所说……修剪方法不会改变原始字符串。我希望在验证运行之前更新原始字符串。您也可以在粘贴数据之前访问数据。使用事件中的剪贴板API。你要否决我,因为我甚至不知道你可以绑定粘贴事件?多年来一直这样做,从未听说过。我认为它不值得投否决票。