两个限制之间的子字符串使用 jQuery
substring between two limit using jQuery
我有一个字符串,从中我必须使用jQuery获取两个限制之间的子字符串。例如,我的字符串是
var sel = "x<span class='"fm-script fm-inline'" style='"vertical-align: 1.33em;'"><span style='"vertical-align: 0em;'"><span class='"fm-vert fm-frac'">1/2</span></span></span>+y<span class='"fm-script fm-inline'" style='"vertical-align: 0.7em;'">3</span>+z<span class='"fm-script fm-inline'" style='"vertical-align: 1.33em;'"><span style='"vertical-align: 0em;'"><span class='"fm-vert fm-frac'">2/3</span></span></span>";
现在我需要 <span class='"fm-script fm-inline'" style='"vertical-align: 0.7em;'">
和 </span>
之间的值。
这里是 3。该值是动态的。此外,字符串sel
包含多个<span class='"fm-script fm-inline'" style='"vertical-align: 0.7em;'">
和</span>
。所以我需要这些字符串之间的所有值。
我怎样才能获得这个??
我尝试了这样的事情:
var item = sel.match("<span class='"fm-script fm-inline'" style='"vertical-align: 0.7em;'">(.*)</span>");
但这给出了第一个(这里只有一个(<span class='"fm-script fm-inline'" style='"vertical-align: 0.7em;'">
和最后一个</span>
之间的结果。
了解更多详情:小提琴
此处所需的输出为 3。我怎样才能做到这一点?请帮助我..
谢谢。。
为什么不渲染它并使用jQuery使用选择器获取跨度内容呢?针对HTML运行正则表达式被认为是一件坏事
var getTextNodesIn = function(el) {
return $(el).find(":not(iframe)").addBack().contents().filter(function() {
return this.nodeType == 3;
});
};
$(function() {
var sel = "x<span class='"fm-script fm-inline'" style='"vertical-align: 1.33em;'"><span style='"vertical-align: 0em;'"><span class='"fm-vert fm-frac'">1/2</span></span></span>+y<span class='"fm-script fm-inline'" style='"vertical-align: 0.7em;'">3</span>+z<span class='"fm-script fm-inline'" style='"vertical-align: 1.33em;'"><span style='"vertical-align: 0em;'"><span class='"fm-vert fm-frac'">2/3</span></span></span>";
var $myDiv = $("<div/>"),vals=[];
$myDiv.append(sel.replace(/''"/g,'"'));
var $nodes = getTextNodesIn($myDiv);
$nodes.each(function() {
vals.push($(this).text());
});
alert(vals.join("'n"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
正则表达式应该可以解决问题:
var regex = new RegExp("<span class='"fm-script fm-inline'" style='"vertical-align: 0.7em;'">([^<]*)</span>","g");
var match = null;
while(match = regex.exec(sel)){
console.log(match[1]);
}
注意:这假设跨度内不存在其他 html 标记。
相关文章:
- 字符串Jquery结构中的变量
- 在字符串 jquery 中添加空格
- 如何在字符串 jQuery 上调用函数
- 将 .val() 转换为字符串 jQuery
- 如何放置 PHP 字符串 jQuery 验证错误消息
- 查找字符串 jQuery/Javascript 的部分
- 从字符串 jQuery 中删除字符串
- 比较明显相等的字符串 JQuery
- 在字符串中使用 PHP 作为字符串.(JQuery)
- 比较两个字符串(jquery .text() 和文字字符串)
- 替换<a>如果它以字符串JQuery结尾
- 字符串jQuery剩余的空白数量
- 重新注册字符串jquery.Ui可拖动
- 字符串替换为另一个字符串jquery/javascript
- 如果子值与某个字符串JQuery匹配,则隐藏父元素
- 单击时从输入中删除字符串?jQuery
- 如何获取特定子字符串jquery之后的字符串
- 不能识别父-字符串JQuery中的子字符串
- 翻译KeyDown键码字符串(jQuery)
- 即使我没有引号来转义,它仍然说我有一个未闭字符串(Jquery)