正则表达式:匹配以“AM”结尾的单词(不区分大小写比较)[重复]
Posted
技术标签:
【中文标题】正则表达式:匹配以“AM”结尾的单词(不区分大小写比较)[重复]【英文标题】:Regex: match word that ends with “AM” (with case insensitive comparison) [duplicate] 【发布时间】:2016-08-29 18:34:06 【问题描述】:我需要使用正则表达式比较以“AM”结尾的文本。使用不区分大小写的输入,即
上午 上午 上午 上午所有都应该是有效的场景。我在下面试试
myinput.match(/^\w*am\b$/)
但它在进行区分大小写的比较(即,对于“am”但不适用于 AM、Am、aM)。
JSFiddle
【问题讨论】:
myinput.match(/^\w*am$/i)
【参考方案1】:
您需要在末尾添加 case intensive 标志:
myinput.match(/^\w*am\b$/i)
编辑:根据您的评论
07.15am
的问题是正则表达式的第一部分。如果你想严格,那么你可以尝试:
/^(\w+)(\.\w+)\s?(am)$/i
这将匹配 07.15am
、07.15Am
或 07.15 AM
。
如果您想稍微宽松一点,可以将第二组设为可选。
/^(\w+)(\.\w+)?\s?(am)$/i
如果您在字符串之前或之后有任何内容,这也不起作用。我建议删除 ^$ 边界。
/(\w+)(\.\w+)?\s?(am)/i
这应该涵盖大多数情况。
【讨论】:
\b$
这里和$
一样。
如果输入为:07.15am,则无法正常工作以上是关于正则表达式:匹配以“AM”结尾的单词(不区分大小写比较)[重复]的主要内容,如果未能解决你的问题,请参考以下文章