1

当我尝试使用 jscript 为我的博客中的图像生成名称时

$img.attr('title', filename.substring((filename.lastIndexOf('/'))+1, filename.lastIndexOf('.')));

我得到包含破折号和加号的图像名称。我的问题是得到没有破折号的名字,加上我想要空格的字符。任何人都可以使它成为可能。整个代码看起来像这样

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' type='text/javascript'/>
<script type='text/javascript'>
//<![CDATA[
$(document).ready(function()
{
$('img').each(function()
{
var $img = $(this);
var filename = $img.attr('src')
$img.attr('title', filename.substring((filename.lastIndexOf('/'))+1, filename.lastIndexOf('.')));
$img.attr('alt', filename.substring((filename.lastIndexOf('/'))+1, filename.lastIndexOf('.')));
$img.attr('title', filename.replace("+"," "));
});
});
//]]>
</script>

这是完整的脚本,我想知道如何在获取图像名称并用空格替换特殊字符时避免图像名称中的特殊字符。

它必须放在博客 html 代码中的部分之后。

4

1 回答 1

1

工作演示

看起来您正在尝试获取基本名称,然后将 - 或 + 替换为空格,例如,如果http://somedomain.com/images/some+image-here.jpg您想要some image here

以下采用基本名称,用空格替换破折号和加号并删除数字。

$('img').each(function(){
  var bn=$(this).attr('src').replace(/[0-9]|^.*\/|\.[^.]*$/g, '').replace(/[\+|\-]/g,' ');
  $(this).attr('title', bn).attr('alt',bn);
});

或者如果你想保留 .jpg

var bn=$(this).attr('src').replace(/[0-9]|^.*\/|\.*$/g, '').replace(/[\+|\-]/g,' ');
于 2013-01-05T03:56:19.593 回答