gpt4 book ai didi

javascript - JS - 数字的正则表达式没有前导零,或者只是零

转载 作者:行者123 更新时间:2023-11-30 09:28:23 24 4
gpt4 key购买 nike

我正在尝试为货币编写一个正则表达式(没有逗号或 $ 符号或句点;只有整数),但我碰壁了。

我需要一个数字(作为字符串)来匹配要验证的模式。

以下是我需要的:
1.数字可以是单零
2.数字不能有前导零

有效输入:0123451230

无效:00012345

我目前拥有的:

var regex = '^(?!00)([1-9][0-9]*)$';

var testCases = ['0', '12345', '0123', '456', '12340', '00123'];

for (var i in testCases) {
var result = (testCases[i]).match(new RegExp(regex));

var div = document.createElement('div');
var textNode = document.createTextNode(testCases[i] + ': ' + !!result);
div.append(textNode);
document.querySelector('#results').appendChild(div);
}
<div id='results'></div>

唯一缺少的(我觉得)是通过了唯一的 0 个案例

最佳答案

使用以下正则表达式:

/^(?:[1-9][0-9]*|0)$/

详情

  • ^ - 字符串的开始
  • (?: - 交替组的开始:
    • [1-9][0-9]* - 从 19 的数字,然后是任何 0+ 数字<
    • | - 或
    • 0 - 0
  • ) - 组结束
  • $ - 字符串结尾。

参见 regex demo

JS 演示:

var regex = /^(?:[1-9][0-9]*|0)$/;
var testCases = ['0', '12345', '0123', '456'];
for (var i in testCases) {
var result = regex.test(testCases[i]);
console.log(testCases[i] + ': ' + result);
}

关于javascript - JS - 数字的正则表达式没有前导零,或者只是零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47915266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com