【发布时间】:2016-08-29 18:34:06
【问题描述】:
我需要使用正则表达式比较以“AM”结尾的文本。使用不区分大小写的输入,即
- 上午
- 上午
- 上午
- 上午
所有都应该是有效的场景。我在下面试试
myinput.match(/^\w*am\b$/)
但它在进行区分大小写的比较(即,对于“am”但不适用于 AM、Am、aM)。
【问题讨论】:
-
myinput.match(/^\w*am$/i)
标签: javascript regex
我需要使用正则表达式比较以“AM”结尾的文本。使用不区分大小写的输入,即
所有都应该是有效的场景。我在下面试试
myinput.match(/^\w*am\b$/)
但它在进行区分大小写的比较(即,对于“am”但不适用于 AM、Am、aM)。
【问题讨论】:
myinput.match(/^\w*am$/i)
标签: javascript regex
您需要在末尾添加 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$ 这里和$一样。