gpt4 book ai didi

javascript - 正则表达式中的否定

转载 作者:数据小太阳 更新时间:2023-10-29 05:53:23 29 4
gpt4 key购买 nike

我想在 JavaScript 中使用正则表达式来验证表单输入。这是一个字符串,不应包含 < 、 > 或我提到的任何特定字符集。如果字符串不包含这些字符,则测试应该通过。

那么如何在正则表达式中指定不包含字符。

示例:

stringX = "vijay<>@$%_"

我的目标是

  1. 字符串不应包含 '<','>' 字符。
  2. 如果 stringX 没有这些字符,测试应该通过 return true。

注意:

我能做到:

stringX = "vijay<>@$%_"
regExp=/[<>`]/;
if(!rexExp.test(stringX)) {
doSomthing()
}

但我不想要这个。

因为我会遇到小麻烦。

我有一个名为 validate() 的通用函数

function validate(stringX, regExp)
{
if(rexExp.test(stringX)) { // see there is no "!" in the condition.
return true;
}
}

假设我想验证 2 个字符串。

  1. 情况 1: 只有数字。我会使用正则表达式:/^[\d]*$/
  2. 案例 2:没有 <,> 。我会使用正则表达式:/^[<>`]*$因为我不想指定所有字符都被允许。我想指定字符这是不允许的。

但是我的验证函数只适用于情况 1。和案例2一样,我不会得到预期的结果。只有当字符串只有 <,>,` 字符时,Validate() 才会给我 true。

最佳答案

如果您接受字符串中的任何其他字符,这将匹配所有不包含字符 <、> 和 `:

的字符串
regexp=/[^<>`]*/;

编辑:使用行开始/结束 anchor 更正表达式(感谢 MizardX):

regexp=/^[^<>`]*$/;

关于javascript - 正则表达式中的否定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4680098/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com