使用下面的字符串,如何编写正则表达式以删除或单独保存#
符号后面显示的字符。
var category = "http://schemas.google.com/g/2005#work"
答案 0 :(得分:2)
您可以使用此正则表达式:
var category = "http://schemas.google.com/g/2005#work";
var hashval = category.replace(/^[^#]*#([\s\S]*)$/, '$1');
//=> work
或者更好地使用String#match:
var hashval = category.match(/#([\s\S]*)$/)[1];
//=> work
答案 1 :(得分:0)
好的方法是让浏览器完成繁重的工作。
var category = "http://schemas.google.com/g/2005#work",
link = document.createElement('a'),
hash;
link.href = category;
hash = link.hash;
这会让您的浏览器创建一个a
元素,并将该元素的href
属性设置为category
。然后浏览器解析URL。链接的hash
属性位于URL中的#
之后。
前段时间我回答了a similar question,并提供了更为完整的代码版本。
答案 2 :(得分:0)
我认为另一种方式是使用捕获组:
\#(.*)
通过这种方式,可以创建其他不同的组来捕获不同的元素。
希望这有助于= D