我有这个代码。我想在.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()
如何对待正则表达式?
我已经看到了这个问题,但它并没有帮助我解决这个问题。
答案 0 :(得分:2)
您需要使用正则表达式文字符号(当正则表达式文字放在引号内时它变成常规字符串文字,而split
将此文本用作文字字符串,而不是模式)和转义点,因为正则表达式模式中未转义的点匹配任何字符(但换行符):
imageUrlSplit = imageUrl.split(/\.mono-\d+/);
^^^ ^
参见演示:
imageUrl = 'http://example.com/media/image.mono-50.png';
imageUrlSplit = imageUrl.split(/\.mono-\d+/);
console.log(imageUrlSplit);