【问题标题】:Regex to check if string contains Alphanumeric Characters and Spaces only - javascript正则表达式检查字符串是否仅包含字母数字字符和空格 - javascript
【发布时间】:2013-09-09 05:51:14
【问题描述】:

这是我目前所拥有的:

function checkTitle(){
    reg = /^[\w ]+$/;
    a = reg.test($("#title").val());    
    console.log(a);
}

到目前为止,在我的测试中,它捕获了除_ 之外的所有特殊字符。 如何在当前函数中捕获包括_在内的所有特殊字符?

我需要字符串只有字母数字字符和空格。感谢您的帮助,因为我很难理解 regex 模式。

谢谢!

【问题讨论】:

  • 糟糕,我在您回复之前删除了评论,我认为答案已经足够了!

标签: javascript regex


【解决方案1】:

您的问题是\w 匹配所有字母数字值和下划线。

与其解析整个字符串,不如查找任何不需要的字符。例如

var reg = /[^A-Za-z0-9 ]/;

如果reg.test 的结果是true,则字符串验证失败。

【讨论】:

  • @TimPietzcker 谢谢。最近一直在使用更强大的正则表达式库。还没有在 JS 中处理 unicode。
  • @Phil:如果需要,请查看XRegExp with Unicode plugins。
  • @Phil 如果我想允许括号怎么办,请建议
  • @AjaySuwalka 那么你不会在字符类中包含括号吗? [^A-Za-z0-9 ()]
  • @Phil 谢谢,我添加了它,我只是有点怀疑添加它是否会起作用。 :
【解决方案2】:

既然您说您是 RegExp 的新手,我不妨在答案中包含一些提示。我建议使用以下正则表达式:

/^[a-z\d ]+$/i

这里:

  1. 不需要大写 A-Z,因为末尾有 i 标志,它以不区分大小写的方式匹配
  2. \d 特殊字符代表数字

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    相关资源
    最近更新 更多