如果使用XRegExp的'x'标志,则不清楚如何在搜索中添加文字'#'。

The documentation似乎不会产生任何照明。

例如:

> XRegExp("the # hey",'x').toString()
'/the(?:)/'


这与预期的一样-'#'之后的所有内容均为注释且被忽略。

一种明显的解决方案,是不忽略#及其后一行内容,通常(根据我的有限经验)以转义修饰符(例如\\)开头:

> XRegExp("the \# hey",'x').toString()
'/the(?:)/'


要么

> XRegExp("the \\# hey",'x').toString()
'/the(?:)\\#(?:)hey/'


不幸的是,这两个都不如预期的那样工作,前一个原因很明显,而后者产生了:

> XRegExp("the \\# hey",'x').xtest("the # hey")
false


甚至在更危险的情况下,我们必须修改输入数据:

> XRegExp("the \\# hey",'x').xtest("the \\# hey")
false


另一种规范的转义方式是使用双哈希(##),但这也不起作用:

> XRegExp("the ## hey",'x').toString()
'/the(?:)/'


因此,问题就变成了,如何将#文字添加到使用'x'标志的XRegExp表达式中?我很沮丧

最佳答案

我找到了答案,请注意,上面的测试无法正常工作,因为空格应替换为\\s+

答案似乎是使用[#]例如

> XRegExp("the\\s+[#]\\s+hey",'x').xtest("the # hey")
true

09-20 08:19