gpt4 book ai didi

javascript - RegEx 测试方法在应该为 true 时返回 false

转载 作者:行者123 更新时间:2023-11-30 15:32:19 24 4
gpt4 key购买 nike

我已经在 http://www.regexpal.com/ 上测试了三个正则表达式它们正是我所需要的,但是在进行正则表达式测试时,其中 2 个返回 false(BTC 和 CAD)并且只有比特币地址似乎有效(您可以使用下面的这个钱包进行测试)。

13dHNxtbckAFM4PzdBqWgymFJmcv3Yzi32

https://jsfiddle.net/ps2fj1ff/1(所有相关代码都在html部分)

    var regWallet = new RegExp("^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$");
var regBTC = new RegExp("^\d*\.\d*$");
var regCAD = new RegExp("^\d+(\.(\d{2}))?$");

$('#button1').on('click', function() {

var btcCheck = $('#amount_btc').val();

if (regBTC.test(btcCheck)) {

} else {
alert("Invalid BTC value!");
}

var cadCheck = $('#amount_cad').val();

if (regCAD.test(cadCheck)) {

} else {
alert("Invalid CAD value!");
}

var walletCheck = $('#wallet').val();
if (regWallet.test(walletCheck)) {

} else {
alert("Invalid Bitcoin address, please make sure you've entered a valid address!");
}
});

最佳答案

原因是在 var regBTC = new RegExp("^\d*\.\d*$");\ 用于转义字符所以如果你 console.log(regBTC) 你会看到它是 ^d*.d*$

为防止这种情况,您必须对它进行双重转义:var regBTC = new RegExp("^\\d*\\.\\d*$");

或者更好的是使用 / 代替:var regBTC =/^\d*\.\d*$/;

其他正则表达式也是如此。

(我最初认为单引号也可以,但显然不适用于 javascript)

关于javascript - RegEx 测试方法在应该为 true 时返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049406/

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