我从.getAttribute()获得了以下字符串:
ctl00$m$g_ff7ec6ac_ec2e_4402_aaaa_7fcce245ff1b$ctl03$_UserName
Run Code Online (Sandbox Code Playgroud)
我们称之为"字符串".现在我需要将$替换为_.我试过了:
String.replace(/\$/g, "\_");
Run Code Online (Sandbox Code Playgroud)
......不起作用
第二次尝试:
String.replace(/$$/g, "\_");
Run Code Online (Sandbox Code Playgroud)
......不起作用
第三次尝试:
String.replace(/\$$/g, "\_");
Run Code Online (Sandbox Code Playgroud)
......不起作用
那么...... Ca有人帮忙吗?谢谢你的努力!
编辑:需要让它适用于IE8/9
这个时候的代码:
mailName = document.body.innerHTML.match(/ctl00\$.+EmailAddress/);
alert(mailName); // String is "ctl00$m$g_ff7ec6ac_ec2e_4402_aaaa_7fcce245ff1b$ctl03$_UserName"
mailName2 = mailName.replace(/\$/g, "_");
Run Code Online (Sandbox Code Playgroud)
EDIT2:
我自己得到了答案.
mailName = document.body.innerHTML.match(/ctl00\$.+EmailAddress/);
Run Code Online (Sandbox Code Playgroud)
给出一个字符串,但.replace()或.split()不能使用它.为了得到工作,你需要这样做
mailID = '"' + document.body.innerHTML.match(/ctl00\$.+EmailAddress/) + '"';
Run Code Online (Sandbox Code Playgroud)
之后一切都很好.不知道为什么,但在IE8/9中这个解决方案效果很好.
使用
yourString = yourString.replace(/\$/g, "_");
Run Code Online (Sandbox Code Playgroud)
无需逃避第二个字符串.
来自MDN:
返回一个新字符串,其中一个或所有匹配的模式由替换替换.模式可以是字符串或RegExp,替换可以是字符串或要为每个匹配调用的函数.
另请注意,replace不会更改原始字符串.您需要取回返回的值.
并且,关于您的编辑,请注意,即使没有修饰符,Internet Explorer的匹配功能似乎也会返回一个数组g:
如果match方法找不到匹配项,则返回null.如果找到匹配项,则match返回一个数组,并更新全局RegExp对象的属性以反映匹配的结果.
你可以做
var str = ''+ document.body.innerHTML.match(/ctl00\$.+EmailAddress/);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |