Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript哈希替换错误_Javascript_Hash_Replace - Fatal编程技术网

Javascript哈希替换错误

Javascript哈希替换错误,javascript,hash,replace,Javascript,Hash,Replace,这有什么问题 散列是:#/search=hello/somethingelse/ window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value); 编辑: 我只想更改散列的特定部分,而不是整个散列散列。replace()实际上不更改散列,只返回一个值(因为它是一个字符串函数)。尝试使用以下命令指定该结果: window.location.hash = window.location.hash.replace(/searc

这有什么问题

散列是:#/search=hello/somethingelse/

window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);
编辑:

我只想更改
散列
的特定部分,而不是整个
散列

散列。replace()
实际上不更改散列,只返回一个值(因为它是一个字符串函数)。尝试使用以下命令指定该结果:

window.location.hash = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);
另一方面,
window.location.replace()
实际上是一个更改URL的函数,但它不直接用于正则表达式。

hash.replace()
实际上不更改哈希,只返回一个值(因为它是一个字符串函数)。尝试使用以下命令指定该结果:

window.location.hash = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);

另一方面,
window.location.replace()
实际上是一个更改URL的函数,但它不能直接用于正则表达式。

您忘记分配它了吗

replace()
是一个字符串函数,返回一个新的字符串对象,它不修改原始字符串

window.location.hash = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);

你忘记分配了吗

replace()
是一个字符串函数,返回一个新的字符串对象,它不修改原始字符串

window.location.hash = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);

我相信JavaScript字符串是不可变的。(快速的谷歌搜索显示,两者都支持我)

这实际上意味着,如果没有赋值语句,它们的值就无法更改

因此,
String.replace(…)
不会更改字符串的值,而是返回一个新字符串

var replaced = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);
现在,由于您可能正在尝试更改
window.location.hash
,因此您可能正在搜索

window.location.hash = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);

我相信JavaScript字符串是不可变的。(快速的谷歌搜索显示,两者都支持我)

这实际上意味着,如果没有赋值语句,它们的值就无法更改

因此,
String.replace(…)
不会更改字符串的值,而是返回一个新字符串

var replaced = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);
现在,由于您可能正在尝试更改
window.location.hash
,因此您可能正在搜索

window.location.hash = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);

你的第二句话是不正确的,它们的值永远不能改变,这就是不可变的定义。雅各布,你知道他的意思。:-)@雅各布·拉尔金——这是真的,但我为了清晰而牺牲了准确性;从实践的角度来看,对于初学者来说,我觉得这个陈述仍然是准确的,尽管不正确。准确的,尽管不正确???这是什么意思?你的第二句话是不正确的,它们的值永远不能改变,这就是不变的定义。雅各布,你知道他的意思。:-)@雅各布·拉尔金——这是真的,但我为了清晰而牺牲了准确性;从实践的角度来看,对于初学者来说,我觉得这个陈述仍然是准确的,尽管不正确。准确的,尽管不正确???这是什么意思?