我认为这是微不足道的,但无法解决:(
我想用javascript更改mu url中传递的参数。
var fullurl = window.location;
//do dome stuff to find var url.
fullurl.replace(/sort:.*\/direction:.*/g,'sort:' + url + '/direction:asc');
基本上有一个网址:http://example.com/article/或http://example.com/article/sort:author/direction:asc
我是第一种情况,我不希望任何改变。在第二步中,我想将sort:
替换为sort:url
。
上面的代码似乎没有做任何事情。我认为问题是regexp没有被解析,它返回一个内有.*
和\/
的网址
任何帮助?感谢
答案 0 :(得分:1)
window.location
不是字符串,它是一个隐式转换为字符串的特殊对象。此外,string.replace
返回新值,它不会更改原始字符串。尝试这样的事情:
var fullurl = window.location.toString();
//do dome stuff to find var url.
window.location = fullurl.replace(/sort:.*\/direction:.*/g,'sort:' + url + '/direction:asc');
答案 1 :(得分:1)
window.location
是一个包含以下属性的对象:
.hash
.host
.hostname
.href
.pathname
.port
.protocol
.search
您可能想要解析href
字符串。我做了一个初步测试,其中我记下了url期望和替换工作,除了你没有指出url
是什么。否则,请在控制台中尝试以下操作:
x = window.location.href
url = "SomeValue"
y = x.replace(/sort:.*\/direction:.*/g, 'sort:' + url + '/direction:asc')
你应该得到你期望的结果,假设你检查y而不是x,因为替换操作返回结果并且不会改变对象本身。