如何改进此正则表达式
How to improve this regex
我有一个正则表达式,可以在div的内部HTML中找到<a href="">
的一部分。
var b = this.innerHTML.match(/href="([^'''"]+)/g);
var c = b[0].split('#')[1];
window.location.assign('#'+c);
并希望摆脱第二行,.split 函数。有没有办法做到这一点?理想情况下,我也想在div 之前保留主题标签:
hrefs 都是这样的(只有数字可能会发生变化):
href="#div46"
href="#div47"
...
您可以使用:
var b = this.innerHTML.match(/href=(['"])(.+?)'1/);
window.location.assign( b[2] ); // #div46
- 删除
g
标志以获取结果数组中的所有匹配组。
var val = $("a").attr("href");
var myString = val.substr(val.indexOf("#") + 1)
alert(myString);
试试这个
你不需要正则表达式:
// you can extract all fragments of an url like this:
var linkElement = document.createElement('a');
linkElement.href = "http://example.com:3000/pathname/?search=test#hash";
linkElement.protocol; // => "http:"
linkElement.hostname; // => "example.com"
linkElement.port; // => "3000"
linkElement.pathname; // => "/pathname/"
linkElement.search; // => "?search=test"
linkElement.hash; // => "#hash"
linkElement.host; // => "example.com:3000"
// in case you already have a link, you'll don't have to create it - just
// use the element and ask for hash - and you are done.
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 改进用于验证付款金额的正则表达式
- [^/:]|正则表达式改进的倒数
- 如何改进多词匹配正则表达式
- 正则表达式来处理标点符号和文本改进
- 正则表达式改进
- 如何改进此正则表达式
- 改进正则表达式以匹配有效值
- 如何改进此正则表达式,使其在字符串位于注释中时不匹配
- 改进向前看正则表达式
- 正则表达式改进匹配
- 正则表达式的改进.接受点