Javascript 此脚本返回的原因'';空';不是对象';?
你能给我指出这个脚本返回的正确方向吗?Javascript 此脚本返回的原因'';空';不是对象';?,javascript,Javascript,你能给我指出这个脚本返回的正确方向吗?“null”不是对象 <script> var pageDetailsSecond = "aaaaa"; if(pageDetailsSecond.match("¢er=(.*)&zoom=").length) { var mapSrc = pageDetailsSecond.match("¢er=(.*)&zoom="); var mapSrc = mapSrc.split(",
“null”不是对象
<script>
var pageDetailsSecond = "aaaaa";
if(pageDetailsSecond.match("¢er=(.*)&zoom=").length) {
var mapSrc = pageDetailsSecond.match("¢er=(.*)&zoom=");
var mapSrc = mapSrc.split(",");
var card_Latitude = mapSrc[0];
var card_Longitude = mapSrc[1];
}
else {
var card_Latitude = '';
var card_Longitude = '';
}
</script>
var pageDetailsSecond=“aaaaa”;
如果(pageDetailsSecond.match(¢er=(.*)&zoom=).length){
var mapSrc=pageDetailsSecond.match(¢er=(*)&zoom=“);
var mapSrc=mapSrc.split(“,”);
var card_Latitude=mapSrc[0];
var card_经度=mapSrc[1];
}
否则{
var卡_纬度=“”;
var卡经度=“”;
}
谢谢您的帮助。您的pageDetailsSecond.match(“¢er=(.*)&zoom=“)
为null
,因此它没有length
属性。因此,当您尝试检查它的长度时,会出现错误
请尝试以下方法:
if(pageDetailsSecond.match("¢er=(.*)&zoom=") !== null) {
您的pageDetailsSecond.match(“¢er=(.*)&zoom=”)
是null
,因此它没有length
属性。因此,当您尝试检查它的长度时,会出现错误
请尝试以下方法:
if(pageDetailsSecond.match("¢er=(.*)&zoom=") !== null) {
您的pageDetailsSecond.match(“¢er=(.*)&zoom=”)
是null
,因此它没有length
属性。因此,当您尝试检查它的长度时,会出现错误
请尝试以下方法:
if(pageDetailsSecond.match("¢er=(.*)&zoom=") !== null) {
您的pageDetailsSecond.match(“¢er=(.*)&zoom=”)
是null
,因此它没有length
属性。因此,当您尝试检查它的长度时,会出现错误
请尝试以下方法:
if(pageDetailsSecond.match("¢er=(.*)&zoom=") !== null) {
如果没有匹配项,match
将返回null,并且您不能写入null.length
。实际上,Chrome报告TypeError:无法读取null的属性“length”
下面是一个解决方案,以及一个正则表达式修复:
var pageDetailsSecond = "aaaaa";
var mapSrc = pageDetailsSecond.match("¢er=(.+?),(.+?)&zoom=");
if (mapSrc) {
var card_Latitude = mapSrc[1];
var card_Longitude = mapSrc[2];
} else {
card_Latitude = '';
card_Longitude = '';
}
我修改了正则表达式,这样您就不必事后拆分了。match
如果不匹配,将返回null,并且您不能写入null.length
。实际上,Chrome报告TypeError:无法读取null的属性“length”
下面是一个解决方案,以及一个正则表达式修复:
var pageDetailsSecond = "aaaaa";
var mapSrc = pageDetailsSecond.match("¢er=(.+?),(.+?)&zoom=");
if (mapSrc) {
var card_Latitude = mapSrc[1];
var card_Longitude = mapSrc[2];
} else {
card_Latitude = '';
card_Longitude = '';
}
我修改了正则表达式,这样您就不必事后拆分了。match
如果不匹配,将返回null,并且您不能写入null.length
。实际上,Chrome报告TypeError:无法读取null的属性“length”
下面是一个解决方案,以及一个正则表达式修复:
var pageDetailsSecond = "aaaaa";
var mapSrc = pageDetailsSecond.match("¢er=(.+?),(.+?)&zoom=");
if (mapSrc) {
var card_Latitude = mapSrc[1];
var card_Longitude = mapSrc[2];
} else {
card_Latitude = '';
card_Longitude = '';
}
我修改了正则表达式,这样您就不必事后拆分了。match
如果不匹配,将返回null,并且您不能写入null.length
。实际上,Chrome报告TypeError:无法读取null的属性“length”
下面是一个解决方案,以及一个正则表达式修复:
var pageDetailsSecond = "aaaaa";
var mapSrc = pageDetailsSecond.match("¢er=(.+?),(.+?)&zoom=");
if (mapSrc) {
var card_Latitude = mapSrc[1];
var card_Longitude = mapSrc[2];
} else {
card_Latitude = '';
card_Longitude = '';
}
我修改了正则表达式,这样您就不必事后拆分了。“aaaaa.match(¢er=(.*)&zoom=“)
为空,因此,.length
调用将失败
尝试将代码更改为以下内容:
<script>
var pageDetailsSecond = "aaaaa";
var matches = pageDetailsSecond.match("¢er=(.*)&zoom=");
if(matches != null && matches.length > 1) {
var mapSrc = matches[matches.length - 1];
var mapSrc = mapSrc.split(",");
if(mapSrc.length == 2) {
var card_Latitude = mapSrc[0];
var card_Longitude = mapSrc[1];
}
}
else {
var card_Latitude = '';
var card_Longitude = '';
}
</script>
var pageDetailsSecond=“aaaaa”;
var matches=pageDetailsSecond.match(¢er=(*)&zoom=“);
如果(matches!=null&&matches.length>1){
var mapSrc=matches[matches.length-1];
var mapSrc=mapSrc.split(“,”);
如果(mapSrc.length==2){
var card_Latitude=mapSrc[0];
var card_经度=mapSrc[1];
}
}
否则{
var卡_纬度=“”;
var卡经度=“”;
}
为空,因此您的.length
调用将失败
尝试将代码更改为以下内容:
<script>
var pageDetailsSecond = "aaaaa";
var matches = pageDetailsSecond.match("¢er=(.*)&zoom=");
if(matches != null && matches.length > 1) {
var mapSrc = matches[matches.length - 1];
var mapSrc = mapSrc.split(",");
if(mapSrc.length == 2) {
var card_Latitude = mapSrc[0];
var card_Longitude = mapSrc[1];
}
}
else {
var card_Latitude = '';
var card_Longitude = '';
}
</script>
var pageDetailsSecond=“aaaaa”;
var matches=pageDetailsSecond.match(¢er=(*)&zoom=“);
如果(matches!=null&&matches.length>1){
var mapSrc=matches[matches.length-1];
var mapSrc=mapSrc.split(“,”);
如果(mapSrc.length==2){
var card_Latitude=mapSrc[0];
var card_经度=mapSrc[1];
}
}
否则{
var卡_纬度=“”;
var卡经度=“”;
}
为空,因此您的.length
调用将失败
尝试将代码更改为以下内容:
<script>
var pageDetailsSecond = "aaaaa";
var matches = pageDetailsSecond.match("¢er=(.*)&zoom=");
if(matches != null && matches.length > 1) {
var mapSrc = matches[matches.length - 1];
var mapSrc = mapSrc.split(",");
if(mapSrc.length == 2) {
var card_Latitude = mapSrc[0];
var card_Longitude = mapSrc[1];
}
}
else {
var card_Latitude = '';
var card_Longitude = '';
}
</script>
var pageDetailsSecond=“aaaaa”;
var matches=pageDetailsSecond.match(¢er=(*)&zoom=“);
如果(matches!=null&&matches.length>1){
var mapSrc=matches[matches.length-1];
var mapSrc=mapSrc.split(“,”);
如果(mapSrc.length==2){
var card_Latitude=mapSrc[0];
var card_经度=mapSrc[1];
}
}
否则{
var卡_纬度=“”;
var卡经度=“”;
}
为空,因此您的.length
调用将失败
尝试将代码更改为以下内容:
<script>
var pageDetailsSecond = "aaaaa";
var matches = pageDetailsSecond.match("¢er=(.*)&zoom=");
if(matches != null && matches.length > 1) {
var mapSrc = matches[matches.length - 1];
var mapSrc = mapSrc.split(",");
if(mapSrc.length == 2) {
var card_Latitude = mapSrc[0];
var card_Longitude = mapSrc[1];
}
}
else {
var card_Latitude = '';
var card_Longitude = '';
}
</script>
var pageDetailsSecond=“aaaaa”;
var matches=pageDetailsSecond.match(¢er=(*)&zoom=“);
如果(matches!=null&&matches.length>1){
var mapSrc=matches[matches.length-1];
var mapSrc=mapSrc.split(“,”);
如果(mapSrc.length==2){
var card_Latitude=mapSrc[0];
var card_经度=mapSrc[1];
}
}
否则{
var卡_纬度=“”;
var卡经度=“”;
}
这里有两件事需要解决
首先,您的条件语句假设一个.length
属性,但是.match()
方法在未找到匹配项时返回一个null
值(因此,没有.length
属性)。查看.match()
的详细信息
其次,在正则表达式中,您将匹配的lat,lng
与(.*)
分组。这意味着.match()
将返回一个包含2个匹配项的数组-第一个匹配整个表达式,第二个匹配您的组:
["¢er=34,-83&zoom=", "34,-83"]
你对第二场比赛感兴趣。下面是一个工作示例:
<script>
var pageDetailsSecond = "¢er=34,-83&zoom=",
matches = pageDetailsSecond.match("¢er=(.*)&zoom=");
if(matches) {
var mapSrc = matches[1].split(",");
var card_Latitude = mapSrc[0];
var card_Longitude = mapSrc[1];
}
else {
var card_Latitude = '';
var card_Longitude = '';
}
</script>
var pageDetailsSecond=“¢er=34,-83&zoom=“,
matches=pageDetailsSecond.match(¢er=(*)&zoom=“);
如果(匹配){
var mapSrc=匹配[1]。拆分(“,”;
var card_Latitude=mapSrc[0];
变量卡经度=mapSrc[