js中按找规则截取字符串

saybookcat 2014-05-23 12:41:14
比如说Js 中有个一个如下的字符串


<td title="GK_PA" class="title" id="t_F111015_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">申请人 - </td>n<td class="content" id="c_F111015_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">赞助商广告 </td></tr>n<tr id="F111152">n<td title="GK_IN" class="title" id="t_F111152_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">名称 - </td>n<td class="content" id="c_F111152_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">附录【所有元字符】附录【所有元字符】</td></tr>n<tr id="F111195">n<td title="GK_IC" class="title" id="t_F111195_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">IPC - </td>n<td class="content" id="c_F111195_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">H04Q7/34</td></tr>n<tr id="F111052">n<td title="GK_TI" class="title" id="t_F111052_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">名称 - </td>n<td class="content" id="c_F111052_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">处理选项</td></tr>n<tr id="F111207">n<td title="GK_ICST" class="title" id="t_F111207_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">ICST - </td>n<td class="content" id="c_F111207_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">H04Q7/34</td></tr>n<tr id="F111029">n<td title="GK_AB" class="title" id="t_F111029_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">摘要 - </td>n<td class="content" id="c_F111029_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">n<table>n<tbody>n<tr>n<td class="content" id="cpp_content_i0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;">常用正则表达式大全匹配日期时间"


需要从后向前,查找到第一个<td标签开始的项,并且其中包含class="content",那么截取该<td标签到最后的文本。
在该示例中的结果就是
<td class="content" id="c_F111029_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">n<table>n<tbody>n<tr>n<td class="content" id="cpp_content_i0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;">常用正则表达式大全匹配日期时间"


并非默认倒数第一个<td中就包含 class="content"

请问在js中有什么办法可以截取啊,刚开是想用正则,好像也不好匹配。
...全文
473 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vincentguo_ 2014-05-23
  • 打赏
  • 举报
回复
没明白规则,这项不符合你说的么 <td>标签里class="content"的项 <td class="content" id="c_F111015_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">赞助商广告 </td>
xuzuning 2014-05-23
  • 打赏
  • 举报
回复
你的描述与结果不一致 <td class="content" id="c_F111029_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">n<table>n<tbody>n<tr>n<td class="content" id="cpp_content_i0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;">常用正则表达式大全匹配日期时间
vincentguo_ 2014-05-23
  • 打赏
  • 举报
回复

		<script type="text/javascript">

			var str = '<td title="GK_PA" class="title" id="t_F111015_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">申请人 - </td>n<td class="content" id="c_F111015_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">赞助商广告 </td></tr>n<tr id="F111152">n<td title="GK_IN" class="title" id="t_F111152_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">名称 - </td>n<td class="content" id="c_F111152_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">附录【所有元字符】附录【所有元字符】</td></tr>n<tr id="F111195">n<td title="GK_IC" class="title" id="t_F111195_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">IPC - </td>n<td class="content" id="c_F111195_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">H04Q7/34</td></tr>n<tr id="F111052">n<td title="GK_TI" class="title" id="t_F111052_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">名称 - </td>n<td class="content" id="c_F111052_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">处理选项</td></tr>n<tr id="F111207">n<td title="GK_ICST" class="title" id="t_F111207_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">ICST - </td>n<td class="content" id="c_F111207_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">H04Q7/34</td></tr>n<tr id="F111029">n<td title="GK_AB" class="title" id="t_F111029_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">摘要 - </td>n<td class="content" id="c_F111029_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">n<table>n<tbody>n<tr>n<td class="content" id="cpp_content_i0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;">常用正则表达式大全匹配日期时间"<td>';

			var result = str.substr(str.lastIndexOf('<td class="content"'));
	alert(result.substring(0, result.indexOf('<', result.indexOf('<')+1)));
		</script>
xuzuning 2014-05-23
  • 打赏
  • 举报
回复
那你自己看着办,不过要注意的是: 正则是基于3型形式语言的,没有多少智力
saybookcat 2014-05-23
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
版主 这样 不合适吧 <td class="content" 是不是分开作为2个字符比较好呢
xuzuning 2014-05-23
  • 打赏
  • 举报
回复
saybookcat 2014-05-23
  • 打赏
  • 举报
回复
引用 2 楼 vincentguo_ 的回复:
没明白规则,这项不符合你说的么 <td>标签里class="content"的项 <td class="content" id="c_F111015_0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;" dbid="DB111">赞助商广告 </td>
需要从后向前匹配
saybookcat 2014-05-23
  • 打赏
  • 举报
回复
版主可否帮忙修改下 ,谢谢啦
saybookcat 2014-05-23
  • 打赏
  • 举报
回复
感谢楼上两位提出,帖子好像不能修改了 截取结果应该是 <td class="content" id="cpp_content_i0" style="color: rgb(0, 0, 0); font-family: 宋体; font-size: 16px;">常用正则表达式大全匹配日期时间"

87,907

社区成员

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

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