日期:2014-05-16  浏览次数:21264 次

请教一个asp截取字符的问题
这两句是UBB里面代码:

re.Pattern = "\[img=(.[^\]]*)\](.*?)\[\/img]"
strContent=re.Replace(strContent,"<img src=""$2"" alt=""$2"">")

$2 在源代码中是这样的:upload/2345.jpg

我现在要把它作为alt,所以我只能要:第一个/后面的内容,且不要 .jpg,也就是我只要2345这几个字

请问高手,如何实现?

我原打算这样写:alt=""&split($2,"/")(0)&""
但是不行

------解决方案--------------------
vbs不支持正则的函数作为参数,可以借助服务器端jscript来弄,而且是$1,不是$2
<script runat="server" language="jscript">
    function getFileName(v) {var arr = v.split('/');return arr[arr.length - 1].split('.')[0]; }
    function replaceImg(reStr, v) {
        var re = new RegExp(reStr, 'gi');
        return v.replace(re, function ($0, $1) {
            return '<img src="' + $1 + '" alt="' + getFileName($1) + '">';
         });
    }
</script>
<%

strContent="[img=upload/2345.jpg]abcd[/img]"
strContent=replaceImg("\[img=(.[^\]]*)\](.*?)\[\/img]",strContent)

response.Write strContent
 %>