使用JavaScript正则表达式解析markdown里的图片标签

230 阅读1分钟

需求:开发一个JavaScript函数,输入为markdown格式语法的图片标签:image31.png

输出是三个返回值:

下面是我写的JavaScript函数和测试代码:

<html>
<script>

var input = "![image31.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e4a9456261654ffcb25fd4421176ef47~tplv-k3u1fbpfcp-zoom-1.image)";

var IMAGE_PATTERN = /^!\[(.*)\]\((.*)\)$/;
var IMAGE_INDEX = /^image(\d+).*$/;
// var IMAGE_TAG = "[图片]";

function SortedImage(index, url){
	this.index = index;
	this.url = url;
}

function sortByIndex(v1,v2){
		if(v1.index < v2.index ){
			return -1;
		}
		else if(v1.index > v2.index ){
			return 1;
		}
		else return 0;
}

function run(input) {

	if (input.indexOf("https://upload-images.jianshu.io") < 0 ) {
		return;
	} 
	
	var result = IMAGE_PATTERN.exec(input);
	if( result.length != 3){
		return;
	}

	var imageIndex = IMAGE_INDEX.exec(result[1]);
	console.assert(imageIndex.length === 2);
	return {
		"fileIndex": imageIndex[1],
		"fileName": result[1],
		"fileURL": result[2],

	};
}
			
var result = run(input);
debugger;

</script>
</html>

执行代码,能按照我期望的输出:

在这里插入图片描述

要获取更多Jerry的原创文章,请关注公众号"汪子熙":