0

我一直在网上寻找,但找不到合适的解决方案来解决我的问题。

我有两个使用输入。一是年龄。另一个是名称。

年龄必须是一个数字。名称必须是一个单词,只包含字符。

if(age==number $$ name == characters){

    // do something

}else{

    // do something else

}

我试过了:

if(Math.floor(num) == num $$ Math.floor(name) != name){

    // do something

}else{

    // do something else

}

但无论如何都没有运气。

如果你知道如何做到这一点,你可以告诉我。非常感谢。

4

3 回答 3

2

鉴于您的输入无论如何都是字符串,因此正则表达式解决方案可能是最简单的。

尝试这个:

if (/^\d+$/.test(age) && /^\D+$/.test(name)) {...}

与上面发布的主要区别在于^and $; 这些将确保字符串包含指定的字符,而不是至少包含一个字符。

于 2013-08-17T21:08:42.483 回答
1

你可以这样做

if (+age==age && name!=+name) {

它检查是否验证了这两个条件:

  • 年龄严格包含一个数字
  • 名字不是数字

但是很难为名称定义严格的规则。这是我国家的一个名字:"Dupé d'Egïe"

假设您只想接受名称“来自 az 和空格的字母”(这可能是个坏主意),那么您可以这样做

if (+age==age && /^[a-z ]+$/.test(name)) {

要测试 age 是否仅包含数字而 name 不包含数字,您可以这样做

if (/^\d+$/.test(age) && /^\D+$/.test(name)) {
于 2013-08-17T20:36:53.517 回答
0

您可以使用 javascript 函数 parseInt(value),如果结果为 NaN,则它不是数字

if(parseInt("54")) {
    console.log("It's a number");
} else {
    console.log("It's not");
}
于 2013-08-17T21:27:56.240 回答