且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-09-12 14:20:06

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


输出是三个返回值:


image31.png

31

https://upload-images.jianshu.io/upload_images/2085791-416440df76a7343c.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240

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

<html>
<script>

var input = "![image31.png](https://upload-images.jianshu.io/upload_images/2085791-416440df76a7343c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)";

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>

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