Javascript 我正在尝试执行regexp命令,但它不起作用。我怎样才能使它可行?

Javascript 我正在尝试执行regexp命令,但它不起作用。我怎样才能使它可行?,javascript,regex,Javascript,Regex,我越来越假了。为什么regex.exec不工作 如何使其工作,以便执行if循环 const结果={ 纬度:23.07696461, 经度:72.59447369 }; const regex=new RegExp(“^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,6}”); if(regex.exec(结果纬度)和®ex.exec(结果经度)){ console.log('if block'); } 否则{ console.log('else block'); }尝试测

我越来越假了。为什么regex.exec不工作

如何使其工作,以便执行if循环

const结果={
纬度:23.07696461,
经度:72.59447369
};
const regex=new RegExp(“^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,6}”);
if(regex.exec(结果纬度)和®ex.exec(结果经度)){
console.log('if block');
}
否则{
console.log('else block');
}
尝试测试功能:

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.test(result.latitude) && regex.test(result.longitude)){
    console.log('if  block');
}
else{
    console.log('else  block');
}
尝试测试功能:

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.test(result.latitude) && regex.test(result.longitude)){
    console.log('if  block');
}
else{
    console.log('else  block');
}

您必须使用双反斜杠(
\\
)来处理
\d
,否则,它将解释为
d
字符

检查一下,伙计

const结果={
纬度:23.07696461,
经度:72.59447369
};
const regex=new RegExp(“^-?([1-8]?[1-9]|[1-9]0)\.{1}\\d{1,6}”);
if(正则表达式测试(结果纬度)和正则表达式测试(结果经度)){
console.log('if block');
}
否则{
console.log('else block');

}
您必须使用双反斜杠(
\\
)来处理
\d
,否则,它将解释为
d
字符

检查一下,伙计

const结果={
纬度:23.07696461,
经度:72.59447369
};
const regex=new RegExp(“^-?([1-8]?[1-9]|[1-9]0)\.{1}\\d{1,6}”);
if(正则表达式测试(结果纬度)和正则表达式测试(结果经度)){
console.log('if block');
}
否则{
console.log('else block');

}
主要问题是,您正在尝试测试6位有效数字,而不是您在示例中看到的8位有效数字

解决这个问题的一个简单方法是更改正则表达式,以便它测试8位数字

const结果={
纬度:23.07696461,
经度:72.59447369
};
常量正则表达式=/^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,8}/;
if(正则表达式测试(结果纬度)和正则表达式测试(结果经度)){
console.log('if block');
}
否则{
console.log('else block');

}
主要问题是,您正在尝试测试6位有效数字,而不是您在示例中看到的8位有效数字

解决这个问题的一个简单方法是更改正则表达式,以便它测试8位数字

const结果={
纬度:23.07696461,
经度:72.59447369
};
常量正则表达式=/^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,8}/;
if(正则表达式测试(结果纬度)和正则表达式测试(结果经度)){
console.log('if block');
}
否则{
console.log('else block');

}
欢迎来到stackoverflow!我可以帮你做这类事情,但你能澄清到底是什么不起作用吗?你期望发生什么?是什么让你认为它不会发生?@ChrisM谢谢你的回复。我想验证纬度和经度。如何使用JS regex函数验证它?您需要避开斜杠,使用
\\d
而不是
\d
。此外,值在点后有8位数字,您的正则表达式设置为匹配其中的1到6位(
\d{1,6}
)(OT:
{1}
是多余的。)欢迎使用stackoverflow!我可以帮你做这类事情,但你能澄清到底是什么不起作用吗?你期望发生什么?是什么让你认为它不会发生?@ChrisM谢谢你的回复。我想验证纬度和经度。如何使用JS regex函数验证它?您需要避开斜杠,使用
\\d
而不是
\d
。此外,值在点后有8位数字,您的正则表达式设置为匹配其中的1到6位(
\d{1,6}
)(OT:
{1}
是多余的。)我希望函数执行if block,因为它是一个有效的lat long。是的,我得到它,但您的纬度和经度是非法的,点后的数字长度需要是6,不像你的测试方法更合适,因为它是一种测试。但实际上,在这种情况下没有实际区别,因为exec要么返回null,要么返回一个结果数组,在布尔上下文中按要求工作。我希望函数执行if block,因为它是一个有效的lat long。是的,我知道了,但您的纬度和经度是非法的,点后的数字长度需要是6,不像你的测试方法更合适,因为它是一种测试。但实际上,在这种情况下没有实际区别,因为exec要么返回null,要么返回一个结果数组,这些结果在布尔上下文中按要求工作。