使用javascript检查网址中的号码?

时间:2015-05-21 04:36:46

标签: javascript url hash

我在网站中有一个图库,每个图库图像都用如下的网址表示:

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

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

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

。 。 。 。

我已创建条件语句以防止用户使用无效的网址。

$universities = array(
    "A University",
    "B University",
    "C University",
    "D University",
    "E University",
    "F University"
);


echo '<select name="univ" id="univ">';
foreach ($universities as $name) {
    echo "<option value='{$name}' " . ($univ_name == $name ? 'selected=\'selected\'': ''). ">{$name}</option>"; 
}
echo '</select>';

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

3 个答案:

答案 0 :(得分:3)

如果你想获得号码,你应该使用:

parseInt(galleryNum,10)

如果要检查galleryNum是否为数字,可以使用:

isNaN(parseInt(galleryNum,10))

答案 1 :(得分:3)

尝试使用.test()

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

答案 2 :(得分:2)

没有&#34; NaN&#34;类型。事实上,尽管NaN代表Not-a-Number,但它实际上是一个数字: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
}