所有数字的正则表达式或仅一个特定符号

时间:2016-06-29 12:09:28

标签: javascript regex

我需要验证字符串是仅包含数字还是只包含一个'*'符号。

正确:

*
123
5

不正确:

**
23*
*2
abc

我已尝试new RegExp('[\*?|\d*]'),但它不允许数字并允许多个*

5 个答案:

答案 0 :(得分:4)

那怎么样:^(?:\*|\d+)$

?:适用于非捕获组。

答案 1 :(得分:1)

试试这个正则表达式:“^ \ d * $”

^:字符串的开头,$:字符串的结尾

答案 2 :(得分:0)

你去了:

(^\*{1}$|^\d+$)

在notepad ++中测试

答案 3 :(得分:0)

使用RegExp.testString.match函数的解决方案:

var checkString = function(str){
    var ast_matches = str.match(/[*]/g);  // asterisk symbol matches
        return /^[*\d]+$/.test(str) && (!ast_matches || ast_matches.length === 1);
    };

console.log(checkString("1235"));      // true
console.log(checkString("*1235"));     // true
console.log(checkString("**23*2abc")); // false

答案 4 :(得分:0)

我会使用这个正则表达式:^(\*|[0-9]*)$

  • ^...$用于匹配整行
  • (|)用于定义两个备选方案
  • \*替代方案1:仅限一颗星
  • [0-9]*备选方案2:仅限数字

您可以使用正则表达式here

您可以像这样创建正则表达式对象:new RegExp(/^[0-9]*\*?[0-9]*$/); I.e。没有撇号。您可以使用here