当有人在我的网站上发布指向其他网页的链接时,我想将href文字缩短为:http://mywebsite.com/posts/8
到/posts/8
或http://mywebsite.com/tags/8
到{{1 }}。因为我正在学习javascript,所以我不想依赖像prototype或jquery这样的库。是否建议使用javascript的/tags/8
方法?
我找到了w3schools的页面here,但我的代码正在替换字符串的所有实例,而不仅仅是href文本。
这是我到目前为止所拥有的:
replace
答案 0 :(得分:1)
str = str.replace(/^http:\/\/www.mywebsite.com/, "");
someElement.appendChild(document.createTextNode(str));
请注意,您通过直接使用用户输入调用document.write
来引入Cross-Site Scripting vulnerability(您也可以说您没有正确处理网址http://<script>alert('XSS');</script>
)。
不使用document.write
,而是将上述代码中的someElement
替换为代码中应包含用户内容的元素。请注意,此代码不能位于JavaScript顶级,而应在load
事件触发时调用。