jQuery将查询参数附加到当前哈希中,忽略重复项
jQuery append query parameters to current hash omitting duplicates
我有一个类似http://example.com/#var1=1
的url我使用以下函数将新的查询参数添加到哈希中:
function appendHash(name, val){
var currentHash = location.hash;
if(!currentHash){
location.hash = '#'+name+'='+val;
}else{
location.hash = currentHash+'&'+name+'='+val;
}
};
然而,如果新的name=val
已经存在于当前哈希中,这将无法正常工作,例如,如果当前哈希是#var1=1&var2=2
,并且我添加了var2=2
,它将再次被附加,我不希望发生这种情况。我需要的是检查新名称和val是否已经存在于url中,如果存在,请跳过它。或者其他功能可能会有所帮助?
您可以为此使用一些正则表达式:
function appendHash (name, val) {
var currentHash = location.hash;
var regex = /(?:[#&])([^=]+)=([^&]+)/g;
var found = false;
st.replace(regex, function (part, key, value) {
if (key === name && value === val) {
found = true;
}
});
if (!currentHash) {
location.hash = '#' + name + '=' + val;
} else if (!found) {
location.hash = currentHash+'&'+name+'='+val;
}
}
如果需要,您甚至可以通过将匹配项存储在对象中来更改某个键的当前值。
或者用这个正则表达式创建一个更动态的哈希检查器。
相关文章:
- AngularJS:获取链接中没有哈希的查询字符串值
- jQuery将查询参数附加到当前哈希中,忽略重复项
- 如何在哈希中设置输入值
- Emberjs :哈希中的函数原型
- 为什么从位置哈希中选择下拉列表在 Chrome 上有效,但不适用于 Firefox、IE 或 Safari
- RegEx 用于从 JavaScript 中的 url 哈希中提取参数
- 如何将帮助程序方法的输出用作 HAML 哈希中的值
- 将查询字符串放在 angularjs 应用程序中的哈希之后
- 删除窗口哈希中的 # 以在函数中使用
- 基于哈希或查询字符串加载动态内容
- 如何从返回的Facebook图形API哈希中提取数据
- 如何使用密钥名称的值来获取密钥名称(在哈希中)
- 如何从哈希中获取数字
- '这'当创建函数存储在哈希中的JS对象时,其作用域为窗口对象
- 按键和返回值从哈希中删除
- 如何将新元素附加到哈希中的同一个键
- 在新创建的模型哈希中缺少烬数据映射
- Regex-获取不带哈希的查询字符串
- 如何从Ruby中的5字加密哈希中找到SHA1加密字符串
- 如何将插入的字符串/动态属性传递到Javascript哈希中