使用 JavaScript,我需要检查给定模式的第一个实例的字符串,并在该模式之后(包括该模式)返回所有内容。有关典型字符串、模式和所需结果,请参见下面的示例。
我遇到的主要问题是该模式几乎肯定会包含特殊字符,例如括号。我无法手动更改模式以转义这些特殊字符。除非我能够先使用它replace
吗?
例如result = string.match(pattern.replace
(特殊转义))
我不确定这样的事情是否可行。正则表达式总是让我头疼,我将不胜感激任何正确或替代方向的指示。
背景
我正在尝试为 LESS 做一些复杂的混合。所以我通过使用反引号转义来限制单行 JavaScript。有关在 LESS 中使用 JavaSCript 的信息,请参阅此处。我希望使用新的可变参数支持来获得多个颜色停止。例如。radial-gradient(@shape, @position, @colorStops...)
然而,LESS 只为您提供使用@arguments 时传递的全部参数。所以我希望使用正则表达式将@arguments 用于字符串,@colorStop 用于模式,并在第一个颜色停止之后返回所有内容,包括第一个颜色停止。使用 @colorStop 时,LESS 返回第一个颜色停止变量。一般概念取自这里)
例如:
字符串:圆 0% 50% rgba(96, 16, 48, 0) 9px #661133 10px rgba(96, 16, 48, 0) 11px
图案:rgba(96, 16, 48, 0) 9px
结果:rgba(96, 16, 48, 0) 9px #661133 10px rgba(96, 16, 48, 0) 11px