Javascript Regex -restrict +, - 在正则表达式的中间

Tan*_*may 2 javascript regex

function btnNumber(){
        charTyped=document.getElementById('txtNumber').value;
        var NumberplusminusRegex =/^[\+?\-?\d]+$/g;

        if (charTyped.match(NumberplusminusRegex)) {
            alert('yeah');
            return true;

        }
        else {
            alert('whoa');
            return false;

        }

}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

这是我的函数来限制输入的数量和+, - 符号,但如何限制它在中间,即在结束+, - 是好的去,但在中间它不会

Wik*_*żew 5

\+?\-?进入角色职业只是允许+-?里面的字符串.

如果你需要允许+-字符串的开头和结尾,使用

/^[-+]?\d+[-+]?$/
  ^^^^^   ^^^^^
Run Code Online (Sandbox Code Playgroud)

[-+]?匹配任一+- 一或零次(由于?量词).

或者,如果仅在开始时或仅在结束时允许标志,请使用

/^([-+]?\d+|\d+[-+]?)$/
Run Code Online (Sandbox Code Playgroud)

图案细节:

  • ^ - 字符串的开头
  • ( - 小组开始
    • [-+]?- 1或0 -+
    • \d+ - 1位或更多位数
    • | - 要么
    • \d+ - 1+位数
    • [-+]?- 1或0 -+
  • ) - 小组结束
  • $ - 字符串结尾.

另外,要检查字符串是否与模式匹配,建议使用RegExp#test而不是String#match:

var NumberplusminusRegex =/^[-+]?\d+[-+]?$/;
if (NumberplusminusRegex.test(charTyped)) { // Yes, else no
Run Code Online (Sandbox Code Playgroud)

function btnNumber(){
charTyped=document.getElementById('txtNumber').value;
    var NumberplusminusRegex =/^[-+]?\d+[-+]?$/;    // NOTE /g should not be used with RegExp.test()
    if (NumberplusminusRegex.test(charTyped)) {     // Check if a match is found
        alert('yeah');
        return true;
    }
    else {
        alert('whoa');
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)
<button onclick="btnNumber()">Click me</button>
<input type='text' id='txtNumber'/>
Run Code Online (Sandbox Code Playgroud)