【问题标题】:Is there any way to make prompts not require a case sensitive answer ?有没有办法让提示不需要区分大小写的答案?
【发布时间】:2018-01-19 04:54:42
【问题描述】:

我有一个这样的 URL 参数。

/?name=John&accountID=123456789&email=jdoe@tc.com

当页面重新加载时,会出现一个提示框,以便用户输入参数以获取其值。例如:如果用户输入 name 并单击 OK,则 John 将出现警报,或者如果用户输入 accountID 然后 123456789 将作为警报出现。这对我有用。

  if ( atts[0] !== '' ) {
    param = prompt( 'Enter desired URL parameter:' );

    for ( i = 0; i < atts.length; i++ ) {
        pair = atts[ i ].split( '=' );

        if ( pair[0] === param ) {
            alert( pair[1] );
            return false;
        }
    }

但问题是当用户输入 NAME (全大写)时它不起作用。如何使这种大小写不敏感。意思是 NAME 应该是 = name,或者 AcCOUntId 应该是 = accountID 。如何在不使用 硬编码 值(如姓名、电子邮件或帐户 ID)的情况下获得此信息,URL 可以是任何东西。我需要匹配用户输入的值或字符串。

【问题讨论】:

  • JavaScript 字符串有toLowerCase()toUpperCase() 转换方法。
  • @Pointy 是的,但是如果 url 在 camelCase 中怎么办?甚至喜欢这个 AcCOUNTId 。 ?
  • URL 不区分大小写,你的问题出在 JavaScript 上。我会告诉你一个方法。

标签: javascript prompt url-parameters


【解决方案1】:

将比较更改为以下可以帮助您:

if ( pair[0].toLowerCase() === param.toLowerCase() ) {
    alert( pair[1] );
    return false;
}

【讨论】:

  • 像魅力一样工作。非常感谢。
  • 很高兴我能帮上忙。
【解决方案2】:

如果你想比较两个不区分大小写的字符串,你可以像这样降低或提高两个字符串:

if ( atts[0] !== '' ) {
    param = prompt( 'Enter desired URL parameter:' );

    for ( i = 0; i < atts.length; i++ ) {
        pair = atts[ i ].split( '=' );

        if ( pair[0].toLowerCase() === param.toLowerCase() ) {
            alert( pair[1] );
            return false;
        }
    }
}

请参阅 MDN toLowerCase()

【讨论】:

    猜你喜欢
    • 2017-01-20
    • 2021-09-11
    • 1970-01-01
    • 2020-03-17
    • 2014-06-10
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多