[javascript]-用于输入文本字段的正则表达式代码,不允许以0开头,但允许0且不应允许字符+;,-,

[javascript]-用于输入文本字段的正则表达式代码,不允许以0开头,但允许0且不应允许字符+;,-,,javascript,regex,Javascript,Regex,看,我正在寻找一个正则表达式代码,其中文本字段应该只接受这些 只有正整数 可以允许0 不应允许+、-、 它不应匹配:0345,7,7+,+7,.7,-7,7-,…7 它不能接受:1+2. - 3. . 注意:我不想要按键功能,我正在寻找正则表达式使用此:^(0 |[1-9][0-9]*)$ 演示:。这有什么帮助吗 $re = '/([1]\d+)/'; $str = '0123'; preg_match_all($re, $str, $matches); // Print the entir

看,我正在寻找一个正则表达式代码,其中文本字段应该只接受这些

  • 只有正整数
  • 可以允许0
  • 不应允许+、-、 它不应匹配:0345,7,7+,+7,.7,-7,7-,…7

    它不能接受:1+2. - 3. .

    注意:我不想要按键功能,我正在寻找正则表达式使用此:
    ^(0 |[1-9][0-9]*)$


    演示:。

    这有什么帮助吗

    $re = '/([1]\d+)/';
    $str = '0123';
    
    preg_match_all($re, $str, $matches);
    
    // Print the entire match result
    print_r($matches);
    
    现在来看JavaScript等价物

    const regex = /([1]\d+)/g;
    const str = `0123`;
    let m;
    
    while ((m = regex.exec(str)) !== null) {
        // This is necessary to avoid infinite loops with zero-width matches
        if (m.index === regex.lastIndex) {
            regex.lastIndex++;
        }
    
        // The result can be accessed through the `m`-variable.
        m.forEach((match, groupIndex) => {
            console.log(`Found match, group ${groupIndex}: ${match}`);
        });
    }
    

    谢谢但是把我提到的其他3个字符排除在外怎么样?这里是不允许的。你怎么理解“排除”这个词?我理解,但它对我不起作用,这3个字符又被接受了。我不介意你把它弄完整。你看演示了吗?你如何测试接受度?@JohnRoshan如果它对你不起作用,那么你就做错了。这个正则表达式是正确的,将完全匹配您想要的。我又添加了几个示例:它表明它确实可以按预期工作。您的意思是仅
    +
    -或包含
    。它不应该接受+-。这是一个JavaScript问题。谢谢,但我正在寻找正则表达式。您的代码只是搜索匹配项,它不会测试整个字符串是否匹配。因此,它将允许在两者之间使用不匹配的字符串。我也不明白为什么里面有
    [1]
    。问题在哪里说数字
    1
    必须出现在每个匹配中?