急!急!急!求一个JS正则表达式!

八面碰壁居士 2012-04-29 05:24:46
需要的表达式如下

形式如下
[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;//返回错误
}


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

多谢,多谢!
...全文
177 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
挨踢直男 2012-05-02
  • 打赏
  • 举报
回复

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)
八面碰壁居士 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

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……
[/Quote]
这个好像只能匹配一次啊,能不能匹配多次了@!
hch126163 2012-05-01
  • 打赏
  • 举报
回复
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]);
inthello 2012-05-01
  • 打赏
  • 举报
回复
有些搞不明白正则是用/\[([^\]]+)\](.*)\[\\(\1)\]/;
来表示的。有木有人解说下js的正则。。。
aisensiy 2012-04-30
  • 打赏
  • 举报
回复

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'));


你是这个意思么
八面碰壁居士 2012-04-30
  • 打赏
  • 举报
回复
嗯,基本是这个意思,不过标签是[cn]中文[\cn]

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧