【问题标题】:Check if user typed specific string with variables检查用户是否输入了带有变量的特定字符串
【发布时间】:2013-02-04 17:23:15
【问题描述】:

为了使用下面的语句简化我的问题,我怎样才能让我的 javascript 始终打印以控制台用户键入的内容?

我的代码中的一个亮点

if (userTyped === 'getname '+ variable) {

“变量”总是等于他们键入的字符串的后半部分。例如,如果用户键入“getname 398502”然后将其记录到控制台,或者如果用户键入“getname 598024”然后将其记录到控制台。

只要他们输入“getname”,然后打印他们输入的所有内容。

【问题讨论】:

  • if (userTyped === 'getname ' + variable) { ?
  • 也许使用正则表达式验证命令,并使用捕获组作为命令参数。
  • 更新了问题。谢谢。

标签: javascript jquery variables if-statement


【解决方案1】:

您需要确保'getname ' 位于字符串的开头:

if (userTyped.indexOf('getname ') === 0) {
    console.log(userTyped);
}

【讨论】:

  • 我可能解释得很糟糕,但这已经证明了我的解决方案!大家都别想了!
【解决方案2】:

您可以使用正则表达式来验证命令并提取参数。比如:

var input = 'getname 19395029'; //Sample input
var re = /^getname (\d+)$/g;
var match = re.exec(input);
if(match) // Input matches command format
    window.alert('Getting name: ' + match[1]);

【讨论】:

    【解决方案3】:

    试试

    if( /^getname /i.test( input ) ) { 
        console.log( input.replace( /^getname /i, "" ) ); 
    }
    

    小提琴here

    【讨论】:

      【解决方案4】:

      可以等于用户输入的任何内容

      那么您不想针对变量(具有特定值)进行测试。相反,您想针对'getname' 测试第一部分并将第二部分解析为变量。你可以使用regular expressions 来做到这一点,例如:

      var match = userTyped.match(/^getname (\d+)$/);
      if (match) {
          var variable = match[1]; // maybe parseInt(match[1], 10) ?
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-20
        • 2019-03-09
        • 1970-01-01
        • 2021-02-25
        • 2018-09-25
        • 1970-01-01
        • 2020-07-12
        • 2022-06-17
        相关资源
        最近更新 更多