在javascript中,如何将电子邮件地址转换为有效的DOM id
In javascript, how can I transform an email address into a valid DOM id?
我想把一个电子邮件地址转换成一个有效的DOM id,这样它就可以用来动态地用jQuery构建一个HTML元素。
例如:- 给定
some.user@example.com
- 返回:
some-user-at-example-com
- For:
$('<div />').attr('id, 'some-user-at-example-com');
有点像Rails的parameterize方法。有什么干净、简单的方法可以做到这一点?
如果您希望该输入的输出完全相同,则可以使用一个或三个正则表达式:
var id = email.replace(/@/g, ' at ').replace(/[^a-z0-9-]+/gi, '-')
.replace(/^-|-$/g, '');
首先,我们用"at"替换at符号(用空格开头和结尾)。然后用破折号替换任何非字母数字字符序列。
但是,请注意,多个电子邮件地址可以成为相同的ID。例如,john.doe@example.com
和john-doe@example.com
都变成john-doe-at-example-com
。您不应该使用这些标识符作为id,因为它们不是唯一的。
Regex和replace
应该可以,但是你真的应该考虑这种方法是否值得,因为有这么多潜在的有效电子邮件地址。
'some.user@example.com'.replace(/[.@]/g ,'-')
来自维基百科关于"有效的电子邮件地址":
niceandsimple@example.com
very.common@example.com
a.little.lengthy.but.fine@dept.example.com
disposable.style.email.with+symbol@example.com
user@[IPv6:2001:db8:1ff::a0b:dbd0]
"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
"very.(),:;<>[]'".VERY.'"very@'' '"very'".unusual"@strange.example.com
postbox@com (top-level domains are valid hostnames)
admin@mailserver1 (local domain name with no TLD)
!#$%&'*+-/=?^_`{}|~@example.org
"()<>[]:,;@'''"!#$%&'*+-/=?^_`{}| ~.a"@example.org
" "@example.org (space between the quotes)
相关文章:
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 如何将数组转换为有效的json
- 如何在javascript中将字符串转换为有效日期
- 将JS对象数组转换为嵌套形式的最有效方法
- 如何将HTML转换为有效的XHTML
- 转换链接在jsfiddle中有效,但在我的浏览器上无效
- 将触摸事件转换为鼠标事件仅每秒有效一次
- 将YYYY/MM/DD转换为有效格式
- 正在将字符串转换为有效的JSON对象
- 将浮点数字转换为RGBA CSS颜色的有效Alpha值
- 将 ExpandoObject 转换为类型,什么更有效,更省时,做那个客户端或服务器端
- 如何在javascript中将价格转换为有效的价格格式
- 将一些数据转换为json格式,但不确定它是否有效
- 将空格分隔的类列表转换为 Jquery 选择器的有效方法
- 单选按钮和行为有效,但是当将工作单选按钮转换为 icheck 插件时,我无法找出一个简单的行
- 在PhoneGap中只有一个CSS转换有效
- 使用Angular将json对象中的通用文本字符串转换为有效的url
- 在node.js-Azure中将sql对象转换为有效的Json字符串
- 带有Object数据的Javascript 2D数组通过$.Ajax()转换为PHP$_POST的有效JSON字符串
- 如何有效地将THREE.Geometry转换为ArrayBuffer、File或Blob