【问题标题】:javaScript check for at least one alphanumeric character in stringjavaScript 检查字符串中至少一个字母数字字符
【发布时间】:2019-12-29 06:33:19
【问题描述】:

在我的应用程序中,有人可以提交其他语言的文本。我只想输入英文字母数字字符串。我已经让这个 JavaScript 函数工作了,但想知道这是否是最好的方法?

var string = $('input[name=title]').val();
if((/\d/.test(string) || /[a-zA-Z]/.test(string)) === false) {
    alert('Field has no Alphanumeric characters.');
    fPass = false;
}

即使有些人只输入 1 个字符,我希望它被允许,只要它是来自英文字母表中 26 个字母之一的数字或字符(不区分大小写)

这里不使用函数是我想出的

if((/[\da-z]/i.test(string)) === false) {
    alert('Please use alphanumeric characters.')
}

【问题讨论】:

  • /[\da-z]/i...
  • @zerkms === false 部分呢?
  • 您需要检查它是否确实返回了truefalse
  • 如果在 == 或 === 中会有所不同吗?
  • 在这种情况下 - 不,但总的来说,我个人至少在过去 5 年内从未使用过==

标签: javascript alphanumeric


【解决方案1】:

您可以将您的正则表达式组合成一个表达式。

function hasAlphanumeric(str) {
  return /\d|[A-z]/.test(str)
}

【讨论】:

    【解决方案2】:

    你可以使用

    ^[\da-z]+$
    


    let allowAlphanumeric = (str) =>{
      return /^[\da-z]+$/i.test(str)
    }
    
    console.log(allowAlphanumeric('$#@'))
    console.log(allowAlphanumeric(''))
    console.log(allowAlphanumeric('  '))
    console.log(allowAlphanumeric('abchbchdb12e44'))

    【讨论】:

    • @zerkms 有 i 标志可以处理不区分大小写的伙伴
    • 是的,你在我发表评论后添加了它。不过,这不是 OP 所要求的。他们问的不是all,而是any字符。
    • @zerkms I'd like for only English alphanumeric strings to be entered. 这是有问题的内容
    • “即使有些人只输入 1 个字符,我也希望允许这样做”,通读问题的结尾真的很有意义:耸耸肩:
    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2011-10-13
    • 2012-03-24
    • 2016-06-04
    • 2017-04-14
    • 1970-01-01
    相关资源
    最近更新 更多