首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Yup with regex -如何验证字符串不是特定的单词(不区分大小写)

基础概念

Yup 是一个用于 JavaScript 和 TypeScript 的对象模式验证库。它允许你定义一个模式,并使用该模式来验证对象的结构和值。正则表达式(regex)是一种强大的文本处理工具,可以用来匹配、查找、替换或分割字符串。

相关优势

  • 灵活性:Yup 和正则表达式结合使用可以提供灵活的验证规则。
  • 可读性:Yup 的 API 设计使得验证逻辑易于理解和维护。
  • 扩展性:Yup 支持链式调用,可以轻松添加多个验证规则。

类型

在这个场景中,我们主要关注的是 Yup 的 string 类型和正则表达式的使用。

应用场景

当你需要验证一个字符串不是特定的单词(不区分大小写)时,可以使用 Yup 和正则表达式来实现。

示例代码

假设我们要验证一个字符串不是 "example" 这个单词(不区分大小写),可以使用以下代码:

代码语言:txt
复制
import * as yup from 'yup';

const schema = yup.object().shape({
  myString: yup.string().notOneOf(['example'], 'Cannot be the word "example"').required(),
});

const testString = 'Example';

schema.validate({ myString: testString })
  .then(() => {
    console.log('Validation passed');
  })
  .catch((err) => {
    console.error(err.errors);
  });

解释

  1. 导入 Yup:首先导入 Yup 库。
  2. 定义模式:使用 yup.object().shape 定义一个对象模式,并在其中定义 myString 字段的验证规则。
  3. 使用 notOneOf 方法yup.string().notOneOf(['example'], 'Cannot be the word "example"') 表示 myString 不能是 "example" 这个单词(不区分大小写)。
  4. 验证字符串:使用 schema.validate 方法验证字符串是否符合定义的模式。

参考链接

通过这种方式,你可以轻松地验证一个字符串不是特定的单词(不区分大小写),并且可以灵活地扩展其他验证规则。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

正则表达式来了,Excel中的正则表达式匹配示例

在单元格中查找特定字符串时,FIND函数和SEARCH函数非常方便。如何知道单元格中是否包含与给定模式匹配的信息?显然,可以使用正则表达式。...2.默认情况下,该函数区分大小写。要忽略文本大小写,将参数match_case设置为FALSE。因为VBA Regexp的限制,不支持不区分大小写的模式。...\b字符表示单词边界,意味着SKU是单独的单词,而不是较大字符串(如23-MAR-2022)的一部分。 建立了模式后,可以继续编写公式。实质上,使用自定义函数与内置函数没有什么不同。...要仅允许空格,使用[-\.]而不是[-\.\s]。 正则表达式不匹配字符 若要查找不包含特定字符的字符串,可以使用与括号中以外的任何内容匹配的否定字符类[^]。...要匹配不以特定文本结尾的字符串,在搜索模式中包含结尾字符串锚定:^((?!lemons).)*。 用于不区分大小写匹配的正则表达式 在经典正则表达式中,有一种特殊的不区分大小写的匹配模式(?

22K30

资源 | 正则表达式的功法大全

m(multi line)允许使用^和$匹配一行的开始和结尾,而不是整个序列。 i(insensitive)令整个表达式不区分大小写(例如/aBc/i 将匹配 AbC)。...匹配一个代表16进制数字的字符串,不区分大小写 -> Try it!...(https://regex101.com/r/cO8lqs/25) 如插入符号那样表示一个锚点(它与$和^相同)来匹配位置,其中一边是一个单词符号(如w),另一边不是单词符号(例如它可能是字符串的起始点或空格符号...* (https://regex101.com/r/cO8lqs/21) 结语 正如上文所示,正则表达式的应用领域非常广,很可能各位读者在开发的过程中已经遇到了它,下面是正则表达式常用的领域: 数据验证...,例如检查时间字符串是否符合格式; 数据抓取,以特定顺序抓取包含特定文本或内容的网页; 数据包装,将数据从某种原格式转换为另外一种格式; 字符串解析,例如捕获所拥有 URL 的 GET 参数,或捕获一组圆括弧内的文本

1.6K40
  • 资源 | 正则表达式的功法大全,做NLP再也不怕搞不定字符串了

    m(multi line)允许使用^和$匹配一行的开始和结尾,而不是整个序列。 i(insensitive)令整个表达式不区分大小写(例如/aBc/i 将匹配 AbC)。...匹配一个代表16进制数字的字符串,不区分大小写 -> Try it!...(https://regex101.com/r/cO8lqs/25) \b 如插入符号那样表示一个锚点(它与$和^相同)来匹配位置,其中一边是一个单词符号(如\w),另一边不是单词符号(例如它可能是字符串的起始点或空格符号...* (https://regex101.com/r/cO8lqs/21) 结语 正如上文所示,正则表达式的应用领域非常广,很可能各位读者在开发的过程中已经遇到了它,下面是正则表达式常用的领域: 数据验证...,例如检查时间字符串是否符合格式; 数据抓取,以特定顺序抓取包含特定文本或内容的网页; 数据包装,将数据从某种原格式转换为另外一种格式; 字符串解析,例如捕获所拥有 URL 的 GET 参数,或捕获一组圆括弧内的文本

    1.6K80

    正则表达式入门 — 一个通过例子来说明的备忘单

    正则表达式(regex 或 regexp)在通过搜索特定搜索模式的一个或多个匹配(即 ASCII 或 unicode 字符的特定序列)从任何文本中提取信息时非常有用。...标志 我们正在学习如何构建一个正则表达式但是却忘记了一个基础的概念:标志。 一个正则表达式的格式通常是这个样子的 /abc/,搜索模式通过两个斜杠符 / 进行区分。...(https://regex101.com/r/cO8lqs/22) [0-9]% 一个具有从0到9其后后一个 % 符号 [^a-zA-Z] 一个不是大小写字母的字符串...(https://regex101.com/r/cO8lqs/25) \b 代表一个锚类似于符号 (等同于 $ 以及 ^) 的匹配位置, 其中一侧是单词字符(如 \w),另外一侧不是单词字符(例如它可能是字符串的开头或空格字符...: 数据验证 (比如检查一个时间字符串 i 的格式是正确的) 数据抓取(特别是网页抓取,最终按特定顺序查找包含特定单词集的所有页面) 数据转换(将数据从“原始”转换为另一种格式) 字符串解析(例如捕获所有

    1.8K20

    正则表达式教程:实例速查

    正则表达式(regex 或 regexp)在文本信息提取方面是非常有用的工具,通过查询一个或多个特定搜索模式的匹配实现(例如,特定的ASCII或unicode字符序列)。...i(不敏感)使整个表达式不区分大小写(例如/ aBc / i将匹配AbC)。 中心主题 分组和捕获——() a(bc) 括号创建一个值为bc的捕获组 - >试试吧! a(?...[a-c] 同上一情况 [a-fA-F0-9] 表示一个十六进制数字的字符串,不区分大小写 - >试试吧!...\b表示像插入符号(它类似于$和^)的匹配位置,其中一侧是单词字符(如\w)而另一侧不是单词字符(例如,它可能是字符串的开头或者空格字符)。 它伴随着它的否定,\B。...(特别是网页抓取,最终按特定顺序查找包含特定单词集的所有页面) 数据转换(将数据从“原始”转换为另一种格式) 字符串解析(例如捕获所有URL的GET参数,捕获一组括号内的文本) 字符串替换(即使在使用通用

    1.6K30

    Linux 中 Grep 命令的常见示例,附有精美备忘单下载!

    本文列出了最常见的 grep 命令和快速示例: 选项:i 命令示例: grep -i pattern file 描述:不区分大小写的搜索 选项:A 命令示例: grep -A n pattern file...不区分大小写的搜索 默认情况下,使用 grep 进行的搜索区分大小写,-i您可以使用以下选项忽略大小写匹配: grep -i search_pattern filename 这样,grep 将返回与...计算匹配行数 -c您可以使用选项获取与模式匹配的行数,而不是显示匹配的行。这是小写的c。...grep -c search_pattern filename 您可以结合-cand-v选项来获取与给定模式不匹配的行数。您当然可以使用不区分大小写的选项-i。...要使 grep 仅搜索完整的单词,您可以使用以下选项-w: grep -w search_string file 这样,如果您搜索单词“done”,它只会显示包含“done”的行,而不是“doner”

    1K10

    挑战30天学完Python:Day18 正则表达式

    本系列为Python基础学习,原稿来源于github英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,会简单用但又没有系统学习的使用者。...,如:是否区分大小写,多行匹配等等 import re txt = 'I love to teach python and javaScript' # 本身反馈一个 span 对象 match =...re.match('I love to teach', txt, re.I) # re.I 不区分大小写 print(match) # <re.Match object; span=(0, 15),...正则语法 在以往我们声明一个变量,使用的是单引号或者双引号。如果要声明一个正则变量则是 r''下面的模式仅用小写字母标识apple,为了使其不区分大小写,我们要么重写模式,要么添加一个标志。...要么是 banana (): 正则表达式分组并记住匹配的文本 让我们用一些例子来上边这些匹配字符是如何使用的。

    31840

    .NET正则表达式

    验证文本以确保它匹配预定义模式(如电子邮件地址)。 提取、编辑、替换或删除文本子字符串。 将提取的字符串添加到集合中,以便生成报告。...有关使用 IsMatch 方法验证文本的示例,请参阅如何:确认字符串是有效的电子邮件格式。...对 Regex.Replace 方法的调用会将匹配的字符串替换为 String.Empty;换句话说,将其从原始字符串中移除。 示例 2:识别重复单词 意外地重复单词是编写者常犯的错误。...因此,匹配操作不区分大小写,此示例将子字符串“This this”标识为重复。 输入字符串包括子字符串“this? This”。 但是,由于插入标点符号,该子字符串不被标识为重复。...示例 3:动态生成区分区域性的正则表达式 下面的示例演示如何将正则表达式的功能与 .NET 的全球化功能所提供的灵活性结合在一起。

    2.1K20

    javascript字符串包含单双引号_js的字符串方法

    includes()区分大小写,因此,如果我们更改子字符串的大小写,将返回“ false”。 includes()第二个参数 includes()方法使您可以指定第二个参数。...我们的代码返回“示例单词不在字符串中。” 尽管我们的字符串中确实包含单词“ Example”,但该单词出现在索引值“ 7”之前,该值是“ Example”和“ String!”之间的空格。...根据我们的字符串是否包含子字符串,此语句向控制台显示一条特定消息。 我们检查indexOf()方法是否不返回-1。如果是这样,则运行“ else”语句。-1表示找不到我们的字符串。...否则,将执行“ if”语句中的代码。 像include()方法一样,indexOf()区分大小写。...如果您执行的是简单搜索并且不需要高级字符串函数,则使用include()或indexOf()可能是一种更好的方法。不建议RegExp.test()方法用于尚未了解Regex的初学者。

    3.3K30

    正则相关的知识分享

    正则: 概念:描述或匹配一系列符合某种规则的字符串 作用:数据验证 内容检索 内容替换 内容过滤 //创建正则对象 //通过实例化对象 letreg=newRegExp("正则表达式"+变量,"模式修正符...") 模式修正符:g:global全局(下一次执行从上一次之后位置) i:不区分大小写m:可以换行 //通过字面量的方式 letreg=/ 正则表达式 /模式修正符 /为定界符正则对象的常用方法...加问号将尽可能取多变成尽可能少取 边界判断: ^开始 $结束 letreg=/^\d{7}$/ \b 单词边界 \B 非单词边界 模式修正符: g全局 i不区分大小写 m换行,多行 举例: //...正则汉字字母数字下划线返回bool function isNotEmpty(str) { var regex =newRegExp("^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|...[a-zA-Z]|[0-9]|[_]){1,10}$"); return regex.test(str); }

    42920

    jq正则表达式_JAVA 正则表达式

    一、JavaScript正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式...i 是一个修饰符(搜索不区分大小写)。 使用字符串方法 在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。...正则表达式参数可用在以上方法中 (替代字符串参数)。正则表达式使得搜索功能更加强大(如实例中不区分大小写)。...正则表达式修饰符 修饰符可以在全局搜索中不区分大小写: 修饰符 描述 i 执行对大小写不敏感的匹配。 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 m 执行多行匹配。...匹配单词边界。 匹配非单词边界。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    1.8K20

    正则表达式 入门

    简介 正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。 许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。...例如下面的正则: regex = “xy{1,3}z” text = “xyyz” 在匹配时,y{1,3}会尽可能长地去匹配,当匹配完 xyy 后,由于 y 要尽可能匹配最长,即三个,但字符串中后面是个...匹配模式 常见的匹配模式有4种,分别是不区分大小写模式、点号通配模式、多行模式和注释模式 不区分大小写模式 ? **使用模式修饰符:**放在整个正则前面时,表示匹配模式 ?...点号通配模式 点号它可以匹配上任何符号,但不能匹配换行,如何匹配真正的“任意”符号 ? 多行匹配模式 多行模式的作用在于,使 ^ 和 $ 能匹配上每行的开头或结尾,我们可以使用模式修饰符号 (?...再比如,去查找一个单词,我们要查找 tom,但其它的单词,比如 tomorrow 中也包含了tom ? 单词边界 ? 环视 举例邮政编码的判断:6位数字,且左边不是数字,右边不是数字 ?

    74430

    简单粗暴的正则表达式笔记

    例如:如果我们想要匹配一个单词,这个单词中有一个字母a,a后面不是字母b,就像apple,hallo,但不能是absolute,那么写法为:\ba-z*a(?!b)a-z*\b(?!...==2)、作用 ==验证、查找、替换、分割==2、字符集默认情况下区分大小写。...2)、 ^ :开始 \b:单词边界 \B:非单词边界 $:结束^:多行代表每行头 单行代表整个字符串的开始$: 多行代表每行尾 单行代表字符串的结尾\b 匹配前面或后面的不是\w\B 匹配前面或后面的是...-i) 不区分大小写。7. 零宽断言(难点)前瞻( Lookahead) 后顾( Lookbehind)问题:什么是断言?...公式: regex.matcher(str)Matcher macher=regex.matcher(str);//查找是否有满足条件的内容,继续向下查找System.out.println(macher.find

    9800

    SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易

    首先,它不区分大小写而且在查询中使用排序来执行测试会使其无规则可循。其次,它并未对包含在过程名称中的实际实体名称执行任何测试。...此决策实际取决于优化枚举器之前如何使用函数以及应如何对函数进行大量测试。 图 2 中的代码表示枚举器。跟踪各个匹配在返回的匹配集中的位置时,MatchNode 类在字符串中封装各个匹配。...正则表达式是一个非常强大的工具,但一定要确保有充分理由应用它们。可能存在用于特定情况的更简单且性能更佳的工具。 我经常查看 MSDN® 论坛中有关如何将一列值传递到存储过程的问题。...还有许多确定执行匹配操作确切方法的可能选项。如果您的数据库排序不区分大小写,您可能希望函数也以不区分大小写的方式执行匹配操作。可能会要求显式捕获选项以减少某些结果集。...为了方便起见,我提供的示例缺乏验证和错误处理,这些是任何生产系统中都应包括的。应验证函数的每个输入并且应由您的要求来确定如何响应 null 或空的字符串输入。

    6.4K60

    尚学堂-马士兵-专题-正则表达式

    很显然这里只能找到一个符合添加的. 那就是java. 其他大小写不符合. 案例二: 不区分大小写, 替换所有的java为大写。...System.out.println(mm.group()); } CASE_INSENSITIVE:大小写不敏感, 即不区分大小写....我们这里使用的就是这个 /* * 需求二: 不区分大小写,查找所有符合条件的字符串, 将其替换为大写 */ //第二个参数代表,大小写不敏感...案例三: 不区分大小写, 查找所有的字符串, 将奇数个替换为java, 偶数个替换为JAVA //第二个参数代表,大小写不敏感 Pattern pp2 = Pattern.compile("java...: 查找所有符合条件的表达式,并将其替换为JAVA System.out.println(mm2.replaceAll("JAVA")); mm2.reset(); /* * 需求三: 不区分大小写,

    1.2K20

    如何用正则表达式匹配重复字符

    正则表达式(regular expression,简称regex)是一种工具,它是人们为了解决某一类专门的问题而发明的。要想理解正则表达式及其作用,最好的办法是了解它们可以解决什么样的问题。...比如工作中经常会遇到几种场景: 你正在搜索一个文件,这个文件里包含着单词car(不区分字母大小写),但你并不想把包含着字符串car的其他单词(比如scar、carry和incarcerate,等等)也找出来...下面跟大家分享一个文中非常经典的正则表达式,如何用正则表达式匹配重复字符。 假设你有一段文本,你想把这段文本里所有连续重复出现的单词(打字错误,其中有一个单词输了两遍)找出来。...显然,在搜索某个单词的第二次出现时,这个单词必须是已知的。回溯引用允许正则表达式模式引用前面的匹配结果(具体到这个例子,就是前面匹配到的单词)。把这个问题弄明白的最佳办法是看看它到底是如何工作的。...下面是一段包含着2组重复单词的文本。 正文: 表达式: [ ]+(\w+)[ ]+\1 结果: 分析:这个模式找到了我们想要的东西,但它是如何做到这一点的呢?

    2.6K31

    你应该学习正则表达式

    1 – 年份匹配 我们来看看另外一个简单的例子——匹配二十或二十一世纪中任何有效的一年。 ? 我们使用\b而不是^和$来开始和结束这个正则表达式。\b表示单词边界,或两个单词之间的空格。...\b搜索一个单词字符前面或者后面没有另一个字符的地方,因此它搜索单词字符的缺失,而\s明确搜索空格字符。\b特别适用于我们想要匹配特定序列/单词的情况,而不是特定序列/单词之前或之后有空格的情况。...我真的不建议在你的应用程序中使用上述表达式;最好是使用一个有信誉的电子邮件验证库或继续探索更完整的电子邮件验证Regex。...脚本将打印在原始网页HTML内容中找到的每个域名。 ? 7 – 命令行的用法 许多Unix命令行实用程序也支持Regex!我们将介绍如何使用grep查找特定文件,以及使用sed替换文本文件内容。...i)——表示下一个序列不区分大小写。 (png|jpg|jpeg|gif|webp)——匹配常见的图像文件扩展名 $——结束行 以下是如何列出Downloads目录中所有图像文件的方法。 ?

    5.3K20
    领券