javascript - 我正在尝试执行 regexp 命令,但它不起作用。我怎样才能使它可行?
问题描述
我越来越假了。为什么 regex.exec 不工作?
我怎样才能让它工作,以便执行 if 循环?
const result = {
latitude: 23.07696461,
longitude: 72.59447369
};
const regex = new RegExp("^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,6}");
if(regex.exec(result.latitude) && regex.exec(result.longitude)){
console.log('if block');
}
else{
console.log('else block');
}
解决方案
主要问题是您正在尝试测试 6 个有效数字,而不是您在示例中看到的 8 个有效数字。
解决此问题的一种简单方法是更改正则表达式以测试 8 位数字。
const result = {
latitude: 23.07696461,
longitude: 72.59447369
};
const regex = /^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,8}/;
if(regex.test(result.latitude) && regex.test(result.longitude)){
console.log('if block');
}
else{
console.log('else block');
}
我还将您的正则表达式更改为正则表达式文字,否则您需要转义\
字符。
但是,如果这应该是一个测试,那么您应该确保您正在使用规范有效的数据测试您的测试。也许纬度和经度应该只有6位数字?也许它们会是可变的?在处理数据清理/验证时,了解您的实际数据约束/要求是很重要的,理想情况下,不要仅仅依靠假设某些示例和测试告诉您您需要知道的一切。
推荐阅读
- html - AngularJS ng-model 在 ng-repeat 中填写我的所有输入
- java - MongoShell 查询 MongoRepository
- python - Python 脚本未在 sys.exit() 上退出
- python - 从 3d 方侦听器在 python 电报 bot 中发送消息的最佳实践
- javascript - Fancybox 自定义指定拇指
- css - 强制浏览器使用 CSS 2.1
- c# - 如果鼠标悬停在内容上,滚动视图也可以滚动
- magnolia - 通过@name 进行 FTL 查询
- python - 使用列表理解Python根据字符长度从系列中删除字符串
- java - 运行 testng.xml 文件显示 Invoked Methods 错误