【问题标题】:how can I type check this particular function? [duplicate]我如何输入检查这个特定的功能? [复制]
【发布时间】:2017-11-14 13:10:37
【问题描述】:

原来提示总是返回一个字符串,我该如何输入检查这个。我正在尝试检查一个名称以查看它是否包含数字。

function getName(){
        try{
            let name=prompt("please type a name").toLowerCase();

            for(let i=0; i<name.length; i++){

                if( typeof name[i] != "string"){
                    throw Error("invalid response");
                }
            }
            return name;
        }
        catch(err){
                console.log(err);
                console.log("please try again");
                getName();
        }
    }

【问题讨论】:

  • 您应该为我们提供更多有效和无效提示输入的示例。因为字符串fdsfdsf123dsfsd也包含数字。

标签: javascript


【解决方案1】:

如果您需要做的只是测试字符串中有 any 个数字,那么您可以使用简单的正则表达式来测试:

var regex = /\d+/g;
regex.test(name); // returns true if there are any numbers anywhere in the string

如果你想看是否只有字母,你可以这样做:

var regex = /[a-zA-Z]+/g;
regex.test(name); // returns true only if all characters are letters

【讨论】:

  • a-d 而不是a-z?
  • @Andy 这是我在喝第一杯咖啡之前进入 Stack 的收获。谢谢,已更正。
【解决方案2】:

这个函数甚至可以在字符串中识别整数

function hasNumbers(t) {
   return /\d/.test(t);
}

hasNumbers ("name") //false
hasNumbers ("name123") //true
hasNumbers ("na124me") //true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-09
    • 2013-08-31
    • 2014-04-12
    • 2016-08-28
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    相关资源
    最近更新 更多