javascript regexp这两个字符都是可选的,但只有一个是无效的

par*_*tho 1 javascript regex

我有一个字符串用于检查javascript中的正则表达式.该字符串可以包含+8或仅包含或8可以是空字符串.但它不能只包含一个+标志.

这些是有效的: +8或者(8或者 ( 3rd one indicates empty string)

This is invalid: +

我试过的代码:

var x=/^\+?(8)?$/.test("+8")? 'ok':'not';
document.write(x);
Run Code Online (Sandbox Code Playgroud)

这段代码一切正常.问题是,如果字符串包含only a + sign,则此代码返回true,该代码应为false.如何实现我想要的?

Kam*_*eha 5

试试这个 -

^(\+?8)?$ 
Run Code Online (Sandbox Code Playgroud)

测试它 -

> /^(\+?8)?$/.test("+")? 'ok':'not';
"not"
> /^(\+?8)?$/.test("+8")? 'ok':'not';
"ok"
> /^(\+?8)?$/.test("")? 'ok':'not';
"ok"
Run Code Online (Sandbox Code Playgroud)