【问题标题】:Exclude certain characters using RegEx使用 RegEx 排除某些字符
【发布时间】:2009-07-14 20:15:44
【问题描述】:

尽我所能,我无法让正则表达式排除空格或单引号。

  • 允许使用字符串“abc”
  • 不允许:“a'bc”、“'”、“'abc”、“'''”、“abc''”等
  • 在上面的示例中,空格也可以替换 '
  • 假定已删除尾随和前导空格
  • 在别处检查空字符串
  • 目标语言是 javascript

如果我在 SQL 中,我会使用 PATINDEX。

或者不是空格或单引号的正匹配,如果我可以否定的话......

我试过了(仅适用于单引号)

  • \w*[^']\w*
  • ^\w*[^']\w*$
  • 其他我现在忘记了

请让我摆脱痛苦,让我今晚可以入睡。

编辑:

  • 目标字符串不会被引号包围。我认为你可能会增加清晰度
  • 如果“目标语言是 javascript”是错误的,那么它就是 c#。我必须检查我们在哪里进行验证:客户端 javascript 或服务器 c#

【问题讨论】:

  • 什么正则表达式语言? Python、Perl、C#、Java?它们都有微妙的不同。
  • 测试字符串总是用双引号括起来吗?

标签: javascript regex


【解决方案1】:

^[^\'\ ]*$
?

【讨论】:

  • 对空格使用 \s 字符类不是更标准吗? (至少在某些正则表达式中,\S 匹配非空白...)
【解决方案2】:

很简单。不允许空字符串。

^[^' ]+$

【讨论】:

  • wuub 先回答,但感谢 +1。这也有效。为什么是 + 而不是 *?
  • +1 表示非转义版本。你可能比我更好 regexper :)
  • + 而不是 * 禁止空字符串。
【解决方案3】:

我认为

^\w*$

应该作为\w 不包含单引号或空格。

【讨论】:

    【解决方案4】:

    如果不阅读详细信息,我在任何地方都看不到 [^ '](带有空格和单引号)。

    【讨论】:

    • 正确。我最初只测试单引号
    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    相关资源
    最近更新 更多