【发布时间】:2016-08-31 22:13:17
【问题描述】:
我有这个代码。我正在尝试匹配 .mono-50,其中 50 可以是任意数字。
imageUrl = 'http://example.com/media/image.mono-50.png';
imageUrlSplit = imageUrl.split('/.mono-\d+/');
console.log(imageUrlSplit);
这不匹配,但在我的测试工具 regexr.com 上匹配
我对它做了很多变化,包括以下内容。
.split('/.mono\-\d+/');
.split('/\.mono\-\d+/');
.split('/.mono-\d+/g');
.split('/.mono\-\d+/g');
.split('/\.mono\-\d+/g');
所有这些都在工具中工作,但在 Javascript 中没有。我对.split() 如何处理正则表达式有误解吗?
我看过这个问题,但它并没有帮助我解决这个问题。
【问题讨论】:
-
删除单引号,因为您要拆分的是字符串而不是模式。
-
@Trey:不仅如此。点也必须转义。 OP不确定是否必须转义。
-
@WiktorStribiżew 正确,但他在一些尝试中逃脱了他们,所以我没有提到它
-
'/\.mono\-\d+/g'-> 以正斜杠开头的文字字符串包含“mono”并以正斜杠和“g”结尾。/\.mono\-\d+/g匹配包含文字点的模式的正则表达式,后跟“单”破折号和任意数量的数字。 -
如果点未转义,则
'http://example.com/media/demono-60/image.mono-50.png'将被错误地拆分。 @Vld:全局行为默认为split()。第二个参数控制分裂的那一侧。
标签: javascript regex split