首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

一个js的正则表达式

2012-06-13 
求助一个js的正则表达式现写一个正则的搜索功能,要求根据关键字搜索出相对应的id,下面是我写的JScript cod

求助一个js的正则表达式
现写一个正则的搜索功能,要求根据关键字搜索出相对应的id,下面是我写的

JScript code
function searchReg(keyWord){var str = "@xinlang|新浪|1@souhu|搜狐|2@wangyi|网易|3@baidu|百度|4@tengxun|腾讯|5@kaixinwang|开心网|6@renrenwang|人人网|7@1haodian|1号店|8@";var reg = new RegExp("[^@]*" + keyWord + "[^@]*","gi");var arr= [];str = str.replace(reg, function(a){arr.push(a);});console.log(arr);}searchReg("x")

这是个简单的搜索功能,其中的1、2、3、4.....表示的是对应的id,我是想用户输入中文或者拼音的情况下,找到匹配项,但是现在有个问题,就是如果关键字本事是id的话,上面的正则也给匹配出来了,比如关键字是1,第一条新浪的数据就会匹配上,我想要的是不进行id的匹配,只进行中文和中文拼音的匹配,那么这个正则该怎么写?

[解决办法]
HTML code
<!doctype html><html>      <head>          <title>tank fighting</title>          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">              </head>      <body>        <input id="inputbox" type="text" value="" />        <input id="btn" type="button" value="search" />        <script>            var str = "0@xinlang|新浪|1@souhu|搜狐|2@wangyi|网易|3@baidu|百度|4@tengxun|腾讯|5@kaixinwang|开心网|6@renrenwang|人人网|7@1haodian|1号店|8@";            document.getElementById('btn').onclick = function(){                var val = document.getElementById('inputbox').value,                    reg = new RegExp("(\\w)*@(?:\\w+\\|)?"+val),                    ret = reg.exec(str);                alert(ret[1]);            }        </script>      </body>  </html> 

热点排行