Javascript 允许数字、空格、加号、连字符和括号的正则表达式

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/27701747/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 00:31:38  来源:igfitidea点击:

Regular expression which allows numbers, spaces, plus sign, hyphen and brackets

javascriptjqueryregexjquery-plugins

提问by StreetCoder

I am using jquery validator where I have added a method to validate a string which allow only numbers, spaces, plus sign, hyphen and brackets. Number is mandatory in the string but other charterer is optional.

我正在使用 jquery 验证器,其中我添加了一种方法来验证仅允许数字、空格、加号、连字符和括号的字符串。字符串中的数字是强制性的,但其他承租人是可选的。

My code for adding method in jquery validor:

我在 jquery 验证器中添加方法的代码:

jQuery.validator.addMethod( "regex", function(value, element, regexp) {
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    },
    "Please check your input."
);

Following code for the rules:

规则代码如下:

rules: {
myfield: {
    required: true,
    regex: "[0-9]+" // want to add regular expression but I wrote only for digit which works but do not understand how to reach at my requirements.
 },
}

回答by nu11p01n73R

You can add the required characters into character class as

您可以将所需的字符添加到字符类中

/^(?=.*[0-9])[- +()0-9]+$/

Regex Demo

正则表达式演示

Regex Explanation

正则表达式解释

  • (?=.*[0-9])postive look ahead. Ensures that there is atleast one digit

  • [- +()0-9]+matches numbers, spaces, plus sign, hyphen and brackets

  • (?=.*[0-9])积极向前看。确保至少有一位数字

  • [- +()0-9]+匹配数字、空格、加号、连字符和括号

OR

或者

If you are reluctant in using look aheads. You could write without them a lenghier regex as

如果您不愿意使用前瞻。你可以在没有它们的情况下写一个更长的正则表达式

/^[- +()]*[0-9][- +()0-9]*$/