javascript函数indexOf()不工作在chrome与空白的字符串
javascript function indexOf() not working in chrome with white space in string
我想在锚标记中搜索字符串,当我简单地搜索没有空间的"Happy"时,它工作得很好,但是当我搜索像"Happy"这样的空间时,它不起作用。
下面是代码示例:<html>
<body>
<a style="color:#555555" href="Happy coding!!">test</a>
<br/>
<script type="text/javascript">
var hrefTags = document.getElementsByTagName("a");
var bDayId = "";
var stringToSearch = "Happy coding!!";
for(var hrefIndex=0; hrefIndex < hrefTags.length; hrefIndex ++){
bDayId = hrefTags.item(hrefIndex).href.toString();
document.write(bDayId+"<br/>");
document.write( bDayId.indexOf("Happy "));
}
</script>
</body>
</html>
这是因为href作为URL被URL编码,空格变成了'%20'
。带空格的Href是无效的Href,因此如果你想在Href属性中存储一些信息,请使用另一个属性。或者,如果您想读取和字符串比较href属性与空格,在正确的url解码后比较。http://jsfiddle.net/Sddv6/1/
var hrefTags = document.getElementsByTagName("a");
var bDayId = "";
var stringToSearch = "Happy coding!!";
for(var hrefIndex=0; hrefIndex < hrefTags.length; hrefIndex ++){
bDayId = decodeURIComponent(hrefTags.item(hrefIndex).href);
document.write(bDayId);
document.write(bDayId+"<br/>");
document.write( bDayId.indexOf("Happy "));
}
使用正则表达式匹配字符串看看下面的网址会有帮助:http://www.tizag.com/javascriptT/javascript-string-replace.php
从link href属性检索时,空格将被编码为"%20"。试试下面的内容:
bDayId = decodeURIComponent(hrefTags.item(hrefIndex).href.toString());
当我在Firefox中这样做时,我从toString()
得到的字符串是:
file:///home/pax/Happy%20coding!!
如果这就是你所看到的,那么你当然无法在那里找到"Happy "
。当我将搜索语句更改为:
document.write( bDayId.indexOf("Happy%20"));
那么它可以正常工作。
也许您可能想要考虑url编码搜索字符串类似于您的浏览器在toString()
:
document.write( bDayId.indexOf(encodeURIComponent("Happy ")));
当然,这是假设我对编码是正确的。您没有提供来自HTML的实际输出,因此有点难以分辨。
相关文章:
- Chrome WebKitGetUserMedia
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- 在chrome.tabs.onCreated之后加载HTML页面
- chrome扩展中的navigator.geolocation.getCurrentPosition
- javascript代码,用于删除firefox中的空白,但在IE和chrome中无法正常工作
- HTML/JavaScript未在空白chrome页面上运行
- document.referrer 在 Firefox 和 chrome 中是空白的 SSL 重定向.JavaScrip
- 使用 jsPDF 导出 Google 图表,在 Chrome 上工作,但在 Firefox 上不工作(文档中的空白图像)
- 在开发 chrome 扩展程序时,如何打开空白页面来运行脚本
- 从待机模式唤醒后,Chrome画布变为空白
- 在Chrome中保存pdf时,TCPDF空白页
- 如何打开提交目标=“_空白“;在选项卡中,而不是Chrome的弹出窗口中
- Firefox和Chrome页面底部的空白区域
- Chrome 16中的空白页中没有Window对象
- javascript函数indexOf()不工作在chrome与空白的字符串
- Chrome扩展表单输入文本是空白提交
- 谷歌地图V3地图可以在chrome浏览器,空白的移动safari
- 启动Chrome打包应用程序时空白窗口
- 在谷歌chrome 32中打开angularjs应用程序显示空白页面
- 在Google Chrome扩展开发中使用javascript中的onload()函数时出现空白弹出窗口