RegExp GWT/Javascript的测试方法
test method of RegExp GWT/Javascript
我想使用正则表达式检测String
是否为小数。我的问题更多的是关于如何使用正则表达式机制,而不是检测String
是小数。我使用GWT
提供的RegExp
类。
String regexDecimal = "''d+(?:''.''d+)?";
RegExp regex = RegExp.compile(regexDecimal);
String[] decimals = { "one", "+2", "-2", ".4", "-.4", ".5", "2.5" };
for (int i = 0; i < decimals.length; i++) {
System.out.println(decimals[i] + " "
+ decimals[i].matches(regexDecimal) + " "
+ regex.test(decimals[i]) + " "
+ regex.exec(decimals[i]));
}
输出:
one false false null
+2 false true 2
-2 false true 2
.4 false true 4
-.4 false true 4
.5 false true 5
2.5 true true 2.5
我期望这两种方法String.matches()
并且RegExp.test()
返回相同的结果。
- 那么两者之间有什么区别两种方法?
- 如何使用
RegExp.test()
获得相同的行为?
尝试将正则表达式更改为
"^''d+(?:''.''d+)?$"
解释
双重逃生是因为我们在爪哇...
正则表达式以 ^
开头,以强制正则表达式从字符串的开头匹配。
正则表达式以 $
结尾,以强制正则表达式从字符串的最末尾匹配。
这就是你应该如何让 String.matches() 做与 GWT RegExp.test() 相同的操作
我不知道
区别,但我想说RegExp.test()
是正确的,因为只要字符串中有数字,您的正则表达式就会匹配,并且String.matches()
行为类似于正则表达式周围的锚点。
''d+(?:''.''d+)?
您的非捕获组是可选的,因此无论周围有什么,一个''d
([0-9]
)就足以匹配。
当您将锚点添加到正则表达式时,这意味着它必须从头到尾匹配字符串,然后RegExp.test()
可能会显示相同的结果。
^''d+(?:''.''d+)?$
相关文章:
- 编写可测试的JavaScript代码
- 如何测试前端JavaScript库并与Travis集成
- Sinon-带有回调的存根函数-导致测试方法超时
- AngularJS列出了所有单元测试方法
- 使用Jasmine测试嵌入式javascript代码
- Javascript测试-通过Javascript触发模式弹出
- object.仅冻结对象方法.JavaScript
- 快速方法 Javascript/Jquery/etc 检索表单中包含的所有 aspnet:textbox (input)
- 查看整个画布是否被涂成一种颜色的方法.Javascript + processing.js
- .done 或 .then 中的茉莉花测试方法
- 从方法 JavaScript 访问对象变量
- 如何在 JavaScript 中测试方法而不会出错
- Javascript Regexp测试方法的怪异行为
- Javascript测试方法不工作(如预期)
- javascript测试方法未按预期工作
- JavaScript RegExp测试方法工作不稳定,我的意思是第一次执行和第二次执行的结果不同
- 其中记录了JavaScript正则表达式对象测试方法
- Javascript RegExp - 测试方法问题
- asp.net mvc 3 - 如何在Javascript中为Ajax调用服务器编写测试方法
- RegExp GWT/Javascript的测试方法