我需要验证字符串是仅包含数字还是只包含一个'*'符号。
正确:
*
123
5
不正确:
**
23*
*2
abc
我已尝试new RegExp('[\*?|\d*]')
,但它不允许数字并允许多个*
答案 0 :(得分:4)
^(?:\*|\d+)$
?:适用于非捕获组。
答案 1 :(得分:1)
试试这个正则表达式:“^ \ d * $”
^:字符串的开头,$:字符串的结尾
答案 2 :(得分:0)
你去了:
(^\*{1}$|^\d+$)
在notepad ++中测试
答案 3 :(得分:0)
使用RegExp.test
和String.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)