日期:2014-05-16  浏览次数:20397 次

正则表达式 匹配这样的一个串??

格式:电话<姓名>,......

15910347983<张珊>,13810987986<李咯个>,..........

------解决方案--------------------
var pattern = /^\d{11}<[\u4e00-\u9fa5]{2,}>$/
------解决方案--------------------
var r = /^\d{11}<[^>]+>(,\d{11}<[^>]+>)*$/g;
var s = '15910347983<张珊>,13810987986<李咯个>';
var s1 = '15910347983<张珊>,13810987986<李咯个>,';
alert( r.test(s) )
alert( r.test(s1) )

------解决方案--------------------
你可以改一下
<> 里面有 中文 和 字母
[\u4e00-\u9fa5a-z]
------解决方案--------------------
    var str="15910347983<张珊>,13810987986<李咯个>,15910347983<张珊>,13810987986<李咯个>";
    var test=/^(\d{11}<[^>]+>,?)+$/g.test(str);//判断
    var arr = str.match(/\d{11}<[^>]+>/g);//匹配出来
    console.log(arr);

------解决方案--------------------
根据楼上的几位 改进了下


var ss = "15910347983<张珊,13810987986<李咯个>";
var ss2 = "15910347983<张珊,13810987986<李咯个>";
var r = /^\d{11}<[^(>
------解决方案--------------------
<)]{2,}>(,\d{11}<[^(>
------解决方案--------------------
<)]{2,}>)*$/g;
alert(r.test(ss));
alert(r.test(ss2));

------解决方案--------------------
 /^\d{11}<[\u4e00-\u9fa5]+>$/g;

就错在你的^$这2个符号上

匹配这种格式直接/\d{11}<[^>]+>/g就行了吧,加^$没什么意思吧