<html>
<head></head>
<body><script type="text/javascript">
var strid = strpwd = '' ;
var str = "ID号:11111111111111111 密码:000000000000000002 时间:2014-1-1"+
"ID号:11111111111111113 密码:000000000000000003 时间:2014-1-1"+
"ID号:11111111111111114 密码:000000000000000004 时间:2014-1-1"+
"ID号:YD111111111111110 密码:000000000000000005 时间:2014-1-1"; var regexp = new RegExp("(?:ID号\:)([A-Za-z0-9]{17})",'g');
while((result = regexp.exec(str)) != null){
strid += result[1]+"," ;
}
alert(strid);
//密码获取同上 var regexp = new RegExp("(?:密码\:)([A-Za-z0-9]{17})",'g');
</script>
</body>
</html>
解决方案 »
- 关于iframe内存以及和jquery同时使用的问题解释
- 怎么让第2个form有效....
- 跪求js高手有100分赠送
- 这样的程序是怎么制作的?那些网站联盟,通过注册,得到一段 js 代码或文件,放到自己的网页上就能显示对方的信息,这样的网络程序是怎么
- 求教如何encode和decode中文
- 如何在js中获得表单中动态的文本框内的内容?
- ie6中,在线编辑器的onpaste怎么不管用?而在IE5却很正常?
- 用正则表达式如何获得当前页面的名字?
- select(multiple)可以一起增加多个已连好的option项么?(谢谢!)
- 单选项,选yes时,激发一事件,选no时不激发,如何写?
- 在线求救,能否得到表格中单元格的列号?
- 在IE浏览器的菜单栏中,点击'文件',选择"关闭",这个关闭页面的事件如何得到?我可以得到点击X和Alt+F4的
reg2 = /[^\d](\d{18})[^\d]/g,
strid= stru.match(reg1).join(",").replace(reg1,"$1"),
strpwd= stru.match(reg2).join(",").replace(reg2,"$1");
//之所以要用replace处理一下,是因为前面匹配出来的数据,前后都会有一个额外的数据
console.log(strid);
console.log(strpwd);按照字符串来处理的stru
现在有个新的问题:
格式1:
ID号:11111111111111111 密码:000000000000000002 时间:2014-1-1
ID号:11111111111111113 密码:000000000000000003 时间:2014-1-1
格式2:
ID号:11111111111111111 密码:000000000000000002
ID号:11111111111111113 密码:000000000000000003
格式3:
ID号:11111111111111111 000000000000000002
ID号:11111111111111113 000000000000000003
格式4:
11111111111111111 密码:000000000000000002
11111111111111113 密码:000000000000000003
格式5:
11111111111111111 000000000000000002
11111111111111113 000000000000000003等等多样化格式 但是ID号的位数 和密码 肯定是固定的 这种情况的话正则表达式能否解决呢?
像你第4,5中的测试用例,这里写成的是换行,如果我当成字符串的话,换行的地方,不能连在一起的。var stru = "11111111111111111 000000000000000002 11111111111111113 000000000000000003";var reg1 = /(?:[^\da-zA-Z]|^)([\da-zA-Z]{17})(?:[^\da-zA-Z]|$)/g,
reg2 = /(?:[^\d]|^)(\d{18})(?:[^\d]|$)/g,
strid= stru.match(reg1).join(",").replace(reg1,"$1"),
strpwd= stru.match(reg2).join(",").replace(reg2,"$1");
//之所以要用replace处理一下,是因为前面匹配出来的数据,前后都会有一个额外的数据
console.log(strid);
console.log(strpwd);
比如,我使用的最后一个的例子,当中是加了一个空格的。
stru = "11111111111111111 00000000000000000211111111111111113 000000000000000003";
如果不使用空格的话,是不对的。所以你自己注意下吧,
重写后的正则在第一段代码中,试试看...
<p id = "a">
11111111111111111<br />
000000000000000002<br />
11111111111111113<br />
000000000000000003
</p>
这里不管是不是加上<br />进行换行。
上面的正则都能处理的。var stru = document.getElementById("a").innerHTML;
这样获取值。应该没有问题吧?我测试时可以的。不管怎么说呢,这个正则只要前后有非数字,都能正常匹配,如果是数字就不行了。当然,按你的意思,结构是这样的,那肯定会有非数字作为分隔的。所以后面的正则都可以处理的,至少我想不到哪种情况,是不能处理的。
数据是在textarea控件中获取的 数据之间会有/n换行,但没有任何字符和空格这种情况
你测试有问题?