【问题标题】:Reg expression validate / \ # & characters正则表达式验证 / \ # & 字符
【发布时间】:2013-08-04 00:33:29
【问题描述】:

我一直在学习正则表达式的工作原理,这对我来说非常棘手。我想从输入字段验证下面的这个字符。基本上如果字符串包含这些字符中的任何一个,alert('bad chars')

  1. /
  2. \
  3. #
  4. &

我找到了这段代码,但是当我改变它时似乎不起作用。如何更改此代码以满足我的需要?

var str = $(this).val();
if(/^[a-zA-Z0-9- ]*$/.test(str) == false) {
    alert('bad');
    return false;
} else {
    alert('good');
}

【问题讨论】:

  • 验证,确保它们存在,确保它们不存在,包含一定数量,包含全部,按特定顺序包含等是什么意思。
  • 这是帮助理解正则表达式代码的参考。 Google Regex Explainer.
  • 基本上如果字符串包含这些字符 alert('bad chars')
  • 实际上想要完成什么?您是否希望仅在字符串包含这些特定字符('/'、'\'、'#'、'&')时才发生“坏”警报?或者您想在输入任何个非字母数字(非字母和非数字)字符时发出警报?

标签: regex


【解决方案1】:

/^[a-zA-Z0-9- ]*$/ 表示如下:

  • ^ 字符串必须从这里开始
  • [a-zA-Z0-9- ] az 之间的字母大写或小写、09 之间的数字、破折号 (-) 和空格。
  • * 重复 0 次或多次
  • $ 字符串必须在此处结束。

对于“任何字符但”,您可以使用^,如下所示:/^[^\/\\#&]*$/。如果这匹配 true,那么它没有任何这些字符。 ^ 紧跟在[ 之后意味着匹配任何不是以下内容的内容

.

【讨论】:

    【解决方案2】:

    您可以尝试以下方法:

    if("/[\\/#&]/".test(str) == true) {
        alert('bad');
        return false;
    } else {
        alert('good');
    }
    

    注意:我不是 100% 知道在 JavaScript 与 .NET 正则表达式中哪些字符需要转义,但基本上,我是说你的字符串是否包含任何字符 @ 987654323@、/#&,然后提示“坏”。

    【讨论】:

    • Javascript 只需要 `` 被转义。
    • @Enigmadan:啊,很好。谢谢!
    • 当然,\ 没有出现,因为它需要被转义... Javascript 要求字符 \ 被转义。
    • @Enigmadan:你知道,我认为这个角色需要被转义! :) 呵呵....再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多