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

急JS正则表达式

2012-06-09 
急!急!急!求一个JS正则表达式!需要的表达式如下形式如下[cn]中文[/cn][en]英文[/en]其中cn或者en可以由我

急!急!急!求一个JS正则表达式!
需要的表达式如下

形式如下
[cn]中文[/cn][en]英文[/en]
其中cn或者en可以由我自己定义(我可以自定义标签的意思)
传入一个字符串后,我根据该字符串和标签名判断该字符串中是否含有该标签,如果含有则取出该标签中的文字,否则返回错误
var getCharByTagName=function(str,tagName){//str=>字符串,tagName=>标签名如en,cn之类
var reg=/这里是正则表达式,我不会搞/;
var _val='';
if(reg.match(str)/*如果该字符串中含有类似的字符*/){
//取出该标签中的字符并赋值给 _val;
_val='';//赋值
return _val;
}
return false;//返回错误
}

大体的意思就是这样了,求高人完善此函数!

多谢,多谢!

[解决办法]

JScript code
var getCharByTagName = function(str, tagName){  var reg  = /\[([^\]]+)\](.*)\[\\(\1)\]/;  var result;  if((result = reg.exec(str)) && result[1] === tagName) {    return result[2];  }  return false;}   console.log(getCharByTagName('[cn]中文[\\cn]', 'cn'));
[解决办法]
function getMatchs(str,tag){
var reg =eval('/\\['+tag+'\\](.+?)\\[\\/'+tag+'\\]/i');
return str.match(reg);
}
var m = getMatchs('aaaa[cn]中文[/cn]bbbb[en]英文[/en]ccccc','cn');
alert(m.length +"\r\n" +m[0]+"\r\n"+m[1]);
[解决办法]
JScript code
function getResult(str, tagName){    var regex = "\\["+tagName+"\\]([^\\[]*)\\[/"+ tagName +"\\]";    var oRegex = new RegExp(regex,'ig');    var result = [];    var match;    while(match = oRegex.exec(str))    {        result.push(match[1]);    }    return result;}function getCharByTagName(str,tagName){    var result = getResult(str,tagName);    if(result.length > 0) return result.join(',');    else return '没有匹配的结果';}var result = getCharByTagName('[en]中文[/en][en]英文[/en]','en');alert(result) 

热点排行