87,910
社区成员
发帖
与我相关
我的任务
分享
var stru = "ID号:11111111111111111 密码:000000000000000002 时间:2014-1-1ID号:11111111111111113 密码:000000000000000003 时间:2014-1-1ID号:11111111111111114 密码:000000000000000004 时间:2014-1-1ID号:YD111111111111110 密码:000000000000000005 时间:2014-1-1";
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
<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>
<p id = "a">
11111111111111111<br />
000000000000000002<br />
11111111111111113<br />
000000000000000003
</p>
这里不管是不是加上<br />进行换行。
上面的正则都能处理的。
var stru = document.getElementById("a").innerHTML;
这样获取值。
应该没有问题吧?我测试时可以的。
不管怎么说呢,这个正则只要前后有非数字,都能正常匹配,如果是数字就不行了。当然,按你的意思,结构是这样的,那肯定会有非数字作为分隔的。所以后面的正则都可以处理的,至少我想不到哪种情况,是不能处理的。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";
如果不使用空格的话,是不对的。
所以你自己注意下吧,
重写后的正则在第一段代码中,试试看...