我创建了以下模式:((\s|[0-9])[0-9]{1}:[0-9]{2}\sPM:)
此正则表达式将用于查找以下模式:
给出以下文字" Christina Perry晚上8:30:"
它应与8:30 PM:
或18:30 PM:
匹配。
它在这里正常工作https://regex101.com/r/DouyiU/2 但是,它在我的JavaScript代码中总是返回false:
var patt = new RegExp("((\s|[0-9])[0-9]{1}:[0-9]{2}\sPM:)");
return (patt.test("Christina Perry 8:30 PM:"));
所需的结果是返回 true ,或者:是的,给定句子上有这种模式;
我做错了什么?
答案 0 :(得分:3)
试试这个(使用正则表达式文字):
var patt = /((\s|[0-9])[0-9]{1}:[0-9]{2}\sPM:)/;
return (patt.test("Christina Perry 8:30 PM:"));
我建议您始终使用正则表达式文字,除非确实需要正则表达式对象(即new RegExp()
)。原因是在大多数情况下,正则表达式文字更容易使用,更易读。例如,在您的情况下,您不必担心转义反斜杠。
需要正则表达式对象的示例:当正则表达式模式由变量构造或构造为多个步骤时。