再帮我写个正则吧!

Even713 2010-06-22 03:28:11
查找
包含<fmt:message,并且key中的词有“-”连接的单词。
如:
<fmt:message key="page-user-name"/>

<fmt:message key="data-user-sample"/>

<fmt:message key="a-b-c">
</fmt:message>

...全文
144 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
-过客- 2010-06-22
  • 打赏
  • 举报
回复
try...

<textarea id="source" rows="10" cols="100"></textarea><br />
<textarea id="result" rows="10" cols="100"></textarea><br />
<script type="text/javascript">
var str = '查找\n'
+'包含<fmt:message,并且key中的词有“-”连接的单词。\n'
+'如:\n'
+'<fmt:message key="page-user-name"/>\n\n'
+'<fmt:message key="data-user-sample"/>\n\n'
+'<fmt:message key="a-b-c">\n'
+'</fmt:message>';
document.getElementById("source").value += str;
var reg = /<fmt:message key="(?![^-]*")[^"]*"(\s*\/>|>[\s\S]*?<\/fmt:message>)/ig;
var arr = str.match(reg);
for(var i=0;i<arr.length;i++)
{
document.getElementById("result").value += arr[i] + "\n-----------\n";
}
</script>
foolbirdflyfirst 2010-06-22
  • 打赏
  • 举报
回复
贴漏了,
alert(setting.match(pat));
foolbirdflyfirst 2010-06-22
  • 打赏
  • 举报
回复
接分。
var setting = '<fmt:message key="page-user-name"/>' //匹配
+'<fmt:message key="-datause-rsample"/>' //不匹配
+'<fmt:message key="a-b-c"></fmt:message>'//匹配
+'<fmt:message key="a-b-"></fmt:message>'//不匹配
+'<fmt:message key="a---b---c"></fmt:message>'//不匹配
+'<fmt:message key=\'a-b-c\'/>';//匹配

var pat = new RegExp("<fmt\\s*:\\s*message\\s+key\\s*=\\s*([\'\"])[a-z]+(-[a-z]+)+\\1[^>]*(?:(?:\/>)|(?:>[^<>]*</fmt\\s*:\\s*message>))",'ig');
兔子-顾问 2010-06-22
  • 打赏
  • 举报
回复
<script type="text/javascript"> 
var test = "<fmt:message key=\"page-user-name\"/>";
var reg = /<fmt:message key=\"(?![^-\"]*\")[^"]+"/ig;
document.write(test.match(reg));
</script>
兔子-顾问 2010-06-22
  • 打赏
  • 举报
回复
<fmt:message(?![^->]*>)[^>]+>
lemon520 2010-06-22
  • 打赏
  • 举报
回复
var re = /<fmt:message key="([\w-]+)"/g
alert(txt.match(re).join().replace(re, $1));
shan1119 2010-06-22
  • 打赏
  • 举报
回复
[code=HTML]<div id=div1>
<fmt:message key="page-user-name"/>

<fmt:message key="data-user-sample"/>

<fmt:message key="a-b-c">
</fmt:message>
</div>
<script>
var str = div1.innerHTML;
str = str.match(/(?:\<fmt\:message key=\")[a-z]+(-[a-z]+)+/gi).join(",").replace(/\<fmt\:message key=\"/gi,"");;
alert(str);
</script>
[/code]
amani11 2010-06-22
  • 打赏
  • 举报
回复
我的错了,
浪尖赏花 2010-06-22
  • 打赏
  • 举报
回复
lz出手真是大方^_^
W8746988 2010-06-22
  • 打赏
  • 举报
回复
http://hi.csdn.net/invite.php?u=3370434&c=9cb528505d2f42a0 加好友谢谢!
浪尖赏花 2010-06-22
  • 打赏
  • 举报
回复
<script>
var str = '<fmt:message key="page-user-name"/>'
+'<fmt:message key="data-user-sample"/>'
+'<fmt:message key="a-b-c">'
+'</fmt:message>';
var re = /<fmt:message key="([^"]*-[^"]*)"(\/)?>/g;
var arr = str.match(re).join().replace(re,"$1");
alert(arr)
</script>
amani11 2010-06-22
  • 打赏
  • 举报
回复

//还是php的
$str = '<fmt:message key="page-user-name"/>

<fmt:message key="data-user-sample"/>

<fmt:message key="a-b-c">
</fmt:message>';

preg_match_all("/key=\"(.*?)\"/is",$str,$out);
print_r($out);
//打印出Array ( [0] => Array ( [0] => key="page-user-name" [1] => key="data-user-sample" [2] => key="a-b-c" ) [1] => Array ( [0] => page-user-name [1] => data-user-sample [2] => a-b-c ) )
//能符合么

87,907

社区成员

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

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