简单的哈希函数,对HTML id友好,区分大小写
Simple hashing function that is HTML id-friendly and case sensitive
我从外部源获取一些字符串,并在页面上的span
中显示它们。
我需要一种使用document.getElementById()
或jQuery的$("#XXXX")
返回这些字符串的方法,所以在每个字符串中,我都会得到某种标识符,并将该标识符用作span
的ID。
问题是,我得到的标识符可能包含像+
这样的字符。不允许将其作为id
属性的值http://www.w3schools.com/tags/att_standard_id.asp此外,这些标识符区分大小写。所以我想到了使用像SHA或MD5这样的哈希函数,对我得到的标识符进行哈希,然后将它们用作跨度的id,我可以再次应用哈希函数来查找我的元素。
对于这样一个简单的功能来说,这似乎很复杂。有更好的方法吗?或者可能是一个非常简单的散列函数,可以保证id
友好的字符和大小写敏感性?(HTML的id
不区分大小写,这是考虑哈希函数的另一个原因)
你能放弃你得到的标识符,只实现像这样简单的东西吗:
var counter = 0;
function uniqueId(){
return "Id" + ++counter;
}
您可以用一个数字和某种字符串来增加id。
span id为"a1"、"a2"等。
我猜问题是你以后会想你会得到相同的字符串,并希望以相同的方式转换它们,然后使用它们来找到原始的对应元素?
如果是这样的话,你只需要小心地清洗你的琴弦。一系列正则表达式可以帮助您从无效字符映射到有效字符,并使大写字母唯一。例如,可以将"A"
转换为"-a-"
,将"+"
转换为"-plus-"
。
一个精心选择的方案应该保证碰撞的可能性(即有人给你一个看起来像另一个字符串的转义版本的字符串)应该很小,并且在任何情况下都可以立即检测到。
相关文章:
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- 如何使后缀函数不区分大小写
- 如何在JavaScript中按大小写拆分字符串
- 如何从一个友好的iframe中获取iframe实例
- 将文本更改为驼色大小写
- 使搜索不区分大小写
- Regex:匹配以“AM”结尾的单词(不区分大小写比较)
- 如何使用jQuery进行不区分大小写的搜索
- "“用户友好”;vimeo嵌入,从url获取嵌入代码
- 逻辑(JSint友好)等效于while循环中的此赋值
- 在非移动友好页面上创建移动友好小部件
- 被robot.txt阻止的资源在谷歌移动友好
- 哪个JavaScript MVC / MVVM是SEO友好的
- Javascript 将 unicode 字符串转换为“标题大小写”
- 正则表达式匹配整个字符串,但大小写不敏感
- 如何在jquery中将链接转换为seo友好的url
- 在 JavaScript 函数中切换大小写
- Aurelia,ES6和类名大小写
- 简单的哈希函数,对HTML id友好,区分大小写