gpt4 book ai didi

正则表达式 - 如何排除单个单词?

转载 作者:行者123 更新时间:2023-12-02 23:04:17 31 4
gpt4 key购买 nike

我正在使用http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/用于验证。验证规则定义如下:

            "onlyLetterSp": {
"regex": /^[a-zA-Z\ \']+$/,
"alertText": "* Only letters"
}

我想添加新规则,该规则将排除一个单词。我在 StackOverflow 上读过一些类似的问题,并尝试用这样的东西来声明它

"regex": /(?!exclude_word)\^[a-zA-Z\ \']+$/,

但是没有成功。你能给我一些建议吗?

最佳答案

这是使用字边界断言的好时机,就像 @FailedDev 指出的那样,但需要小心避免拒绝某些不太特殊的情况,例如 wordy wordsmith 甚至不那么明显的情况,如 swordforeword

我相信这会很有效:

\b(?!\bword\b)\w+\b

这是分解的表达式:

\b        # assert at a word boundary
(?! # look ahead and assert that what follows IS NOT...
\b # a word boundary
word # followed by the exact characters `word`
\b # followed by a word boundary
) # end look-ahead assertion
\w+ # match one or more word characters: `[a-zA-Z0-9_]`
\b # then a word boundary

然而,原始问题中的表达式匹配的不仅仅是单词字符。 [a-zA-Z\\']+ 匹配空格(以支持输入中的多个单词)和单引号(用于撇号?)。如果您需要允许包含撇号的单词,请使用以下表达式:

\b(?!\bword\b)[a-zA-Z']+\b

RegexBuddy test to exclude a 'word' from matching

关于正则表达式 - 如何排除单个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7820930/

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