使用javascript检查url中的数字

Check for number within a url using javascript?

本文关键字:数字 url javascript 检查 使用      更新时间:2023-09-26

我有一个网站内的图库,每个图库图像由url表示,如:

http://www.example.com/gallery/my-photos # 10

http://www.example.com/gallery/my-photos # 11

http://www.example.com/gallery/my-photos # 12

。....

我创建了一个条件语句来防止用户输入无效的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(galleryNum) == "number"){
    console.log('this is a number');
}

然而这不起作用,我从window.location.hash.substring(1)中得到的值将始终是字符串,无论我输入数字还是字符串

如果你想获取number,你应该使用:

parseInt(galleryNum,10)

如果你想检查galleryNum是否为number,你可以使用:

isNaN(parseInt(galleryNum,10))

尝试使用.test()

if( /'d/.test(galleryNum) ) {
  // `Number`
} else {
  // not `Number`
}

没有"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
}