使用javascript检查url中的数字?
我在网站中有一个图库,每个图库图像都由一个url表示,如下所示: 。 . . . 我创建了一个条件语句来防止用户访问无效的url使用javascript检查url中的数字?,javascript,url,hash,Javascript,Url,Hash,我在网站中有一个图库,每个图库图像都由一个url表示,如下所示: 。 . . . 我创建了一个条件语句来防止用户访问无效的url var galleryNum = window.location.hash.substring(1); if( typeof(galleryNum) == "string" || typeof(galleryNum) == "NaN" ){ console.log('this is not a number'); }else if(typeof(ga
var galleryNum = window.location.hash.substring(1);
if( typeof(galleryNum) == "string" || typeof(galleryNum) == "NaN" ){
console.log('this is not a number');
}else if(typeof(galleryNum) == "number"){
console.log('this is a number');
}
但这不起作用,无论我输入数字还是字符串,我从window.location.hash.substring(1)获取的值都将始终是字符串。如果要获取数字,应使用:
parseInt(galleryNum,10)
如果要检查galleryNum是否为数字,可以使用:
isNaN(parseInt(galleryNum,10))
如果您想获取号码,应使用:
parseInt(galleryNum,10)
如果要检查galleryNum是否为数字,可以使用:
isNaN(parseInt(galleryNum,10))
尝试使用.test()
尝试使用.test()
没有“NaN”类型。事实上,尽管NaN代表非数字,但它实际上是一个数字:typeof NaN===“Number”
但是,您可以使用isNaN()
测试NaN。
要测试从URL返回的字符串是否可以转换为数字,请使用parseInt:
var galleryNum = parseInt(window.location.hash.substring(1),10);
if (typeof(galleryNum) === 'number' && !isNan(galleryNum)) {
// got a number here
}
没有“NaN”类型。事实上,尽管NaN代表非数字,但它实际上是一个数字:typeof NaN===“Number”
但是,您可以使用isNaN()
测试NaN。
要测试从URL返回的字符串是否可以转换为数字,请使用parseInt:
var galleryNum = parseInt(window.location.hash.substring(1),10);
if (typeof(galleryNum) === 'number' && !isNan(galleryNum)) {
// got a number here
}
您应该添加基数参数:
parseInt(galleryNum,10)
是的,您确实应该使用基数参数,因为它在旧版本的ecmascript中会执行一些不需要的操作。您应该添加基数参数:parseInt(galleryNum,10)
是的,您确实应该使用基数参数,因为它在旧版本的ecmascript中做了一些不需要的事情。这是事实,但它仍然不能解决他的问题。您是对的。我把注意力集中在他问题中一个不相关的部分。没关系,他知道任何一种方式都是好的。这也许更适合作为评论。这是真的,但它仍然不能解决他的问题。你是对的。我把注意力集中在他问题中一个不相关的部分。没关系,他知道任何一种方式都是好的。不过,它可能更适合作为评论。