Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式测试方法在应该为true时返回false_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 正则表达式测试方法在应该为true时返回false

Javascript 正则表达式测试方法在应该为true时返回false,javascript,jquery,regex,Javascript,Jquery,Regex,我已经在上测试了三个正则表达式,它们正是我需要的,但在进行正则表达式测试时,其中两个返回false(BTC和CAD),并且只有比特币地址似乎有效(您可以使用下面的钱包进行测试) 13dHNxtbckAFM4PzdBqWgymFJmcv3Yzi32 (所有相关代码都在html部分) 原因是在var regBTC=new RegExp(“^\d*\.\d*$”)中使用\转义字符,因此如果console.log(regBTC)您将看到它为^d*.d*$ 要防止这种情况,您必须对其进行双重转义:var

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

13dHNxtbckAFM4PzdBqWgymFJmcv3Yzi32

(所有相关代码都在html部分)


原因是在
var regBTC=new RegExp(“^\d*\.\d*$”)中
使用
\
转义字符,因此如果
console.log(regBTC)
您将看到它为
^d*.d*$

要防止这种情况,您必须对其进行双重转义:
var regBTC=new RegExp(“^\\d*\.\\d*$”

或者最好使用
/
代替:
var regBTC=/^\d*\.\d*$/

另一个正则表达式也是如此

(我最初认为单引号也可以,但在javascript中显然不行)

使用以下方法:

var regBTC = /^\d*\.\d*$/;
var regCAD = /^\d+(\.(\d{2}))$/;
它更清晰,可读性更强,因为大多数编辑器都会以这种格式突出显示regexp语法


使用
new RegExp(/…/)
是多余的,只要使用
/…/
就足够了,我总是尽可能少地修改代码。但我认为我不应该包括裁员。说得好。但我也认为,以更好的方式展示OP是有价值的,因此他们形成了更好的习惯,并在他们提出的问题之外思考冗余之类的事情。有趣!使用“/”现在一切都很好!谢谢,谢谢你的意见。
var regBTC = /^\d*\.\d*$/;
var regCAD = /^\d+(\.(\d{2}))$/;