gpt4 book ai didi

javascript - 如何完成正则表达式语句以验证缩写

转载 作者:行者123 更新时间:2023-11-29 10:26:31 24 4
gpt4 key购买 nike

我应该只使用正则表达式来验证首字母。首字母必须遵循以下格式:

  1. 首字母只能是大写字母
  2. 每个字母后面必须跟一个句点
  3. 每个Letter-Period 对只能由 1 个空格分隔
  4. 幸运的是前导和尾随空格没问题

我能够捕获大写字母句点对,但我无法阻止它接受小写字母并且中间只有一个空格。

var pattern = /[A-Z\s]+(.)/gi;

我希望在针对“H.P.”这样的字符串进行测试时,它会返回 true。当针对“H.p.”、“H.P”等字符串进行测试时,它将返回 false

最佳答案

让我们看看您的要求并找出与每个部分匹配的模式。排名不分先后……

  1. 前导和尾随空格都可以

    这很简单,只需将 \s* 添加到开始 (^) 和结束 ($) anchor

    /^\s*...\s*$/
  2. 首字母必须大写

    大写字母的字符类满足这个

    /[A-Z]/
  3. 每个字母后面都必须跟一个句点

    在前面的模式中添加一个文字句点

    /[A-Z]\./

为了将所有这些结合在一起,我将做出以下假设......

  1. 必须至少有一个首字母(大写字母和句点)
  2. 首字母必须由一个空格分隔

这导致以下模式

/^\s*[A-Z]\.( [A-Z]\.)*\s*$/

分解一下,这是

/
^\s* # zero-or-more spaces at the start of the string
[A-Z]\. # upper-case letter followed by period
( [A-Z]\.)* # zero-or-more repetitions of space + letter + period
\s*$ # zero-or-more spaces at the end of the string
/

const rx = /^\s*[A-Z]\.( [A-Z]\.)*\s*$/
const tests = [' H. ', 'h', 'h.', 'H. P.', 'H.P.', 'H. p.', 'H. P. L.']

tests.forEach(str =>
console.info(str, ' = ', rx.test(str)))

关于javascript - 如何完成正则表达式语句以验证缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57846771/

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