如果使用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