代码之家  ›  专栏  ›  技术社区  ›  Alex Pliutau

获取图像源

  •  2
  • Alex Pliutau  · 技术社区  · 14 年前

    我有下一个字符串,比如:

    <img src="../uplolad/commission/ranks/avatar.jpg' . $row[$c_name] .'" width="50" height="50"/>
    

    如何在javascript中获取图像文件名?我只知道PHP正则表达式。文件的扩展名可以不同。

    结果必须是: avatar.jpg

    3 回复  |  直到 14 年前
        1
  •  6
  •   David Hedlund    14 年前

    Regex不适合这样做。与长字符串相比,JavaScript可以更容易地作为不同的对象遍历HTML。如果您可以通过任何方式标识图片,例如向图片中添加一个ID,或者向父图片中添加一个ID作为唯一的图像,则可以从脚本访问该图像:

    var myImage = document.getElementById('imgAvatar'); // or whatever means of access
    var src = myImage.src; // will contain the full path
    
    if(src.indexOf('/') >= 0) {
       src = src.substring(src.lastIndexOf('/')+1);
    }
    
    alert(src);
    

    如果你想编辑,你也可以这样做

    myImage.src = src.replace('.jpg', '.gif');
    
        2
  •  1
  •   PPShein    14 年前

    按照编码获取它,这可以帮助您得到想要的。

    <script type="text/javascript">
        function getImageName(imagePath) {
            var objImage = new RegExp(/([^\/\\]+)$/);
            var getImgName = objImage.exec(imagePath);
            if (getImgName == null) {
                return null;
            }
            else {
                return getImgName[0];
            }
        }
    </script>
    
    
    <script>
        var mystring = getImageName("http://www.mypapge.mm/myimage.png")
        alert(mystring)
    </script>
    
        3
  •  1
  •   Community CDub    8 年前

    这里有一个简短的变化 David Hedlund's answer 它确实使用了regex:

    var myImage = document.getElementById('imgAvatar'); // or whatever means of access
    alert(myImage.src.replace( /^.+\// , '' ));