Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery选择特定字符_Jquery_Regex - Fatal编程技术网

使用jquery选择特定字符

使用jquery选择特定字符,jquery,regex,Jquery,Regex,我想在特定的div中选择具体的字符cm,并将其添加到span中 html: <div class="fc_img_tooltip_desc" style="line-height:1em;">20X10cm 10X100 50X50 100X100</div> 20X10cm 10X100 50X50 100X100 Jquery <script> function highlight_words(cm , fc_img_tooltip_desc) { i

我想在特定的div中选择具体的字符cm,并将其添加到span中

html:

<div class="fc_img_tooltip_desc" style="line-height:1em;">20X10cm
10X100
50X50
100X100</div>
20X10cm
10X100
50X50
100X100
Jquery

<script>
function highlight_words(cm , fc_img_tooltip_desc) {
if(keywords) {
    var textNodes;
    keywords = keywords.replace(/\W/g, '');
    var str = keywords.split(" ");
    $(str).each(function() {
        var term = this;
        var textNodes = $(element).contents().filter(function() { return 
this.nodeType === 3 });
        textNodes.each(function() {
          var content = $(this).text();
          var regex = new RegExp(term, "gi");
          content = content.replace(regex, '<span class="highlight">' + term 
+ '</span>');
          $(this).replaceWith(content);
        });
    });
}
}
$(window).onload(function(){ highlight_words(); });
</script>

功能突出显示文字(cm、fc、img、工具提示){
如果(关键字){
var文本节点;
关键词=关键词。替换(/\W/g',);
var str=keywords.split(“”);
$(str).每个(函数(){
var术语=此;
var textNodes=$(元素).contents().filter(函数(){return
this.nodeType==3});
textNodes.each(函数(){
var content=$(this.text();
var regex=新RegExp(术语“gi”);
content=content.replace(正则表达式,“+术语
+ '');
$(此).替换为(内容);
});
});
}
}
$(窗口).onload(函数(){highlight_words();});
这行不通,我做错了什么

我所拥有的:

<div class="fc_img_tooltip_desc" style="line-height:1em;">20X10cm
10X100cm
50X50cm
100X100cm</div>
20X10cm
10X100cm
50X50cm
100X100cm
我想要的是:

<div class="fc_img_tooltip_desc" style="line-height:1em;">20X10 cm
10X100 cm
50X50 cm
100X100 cm</div>
20X10厘米
10X100厘米
50X50厘米
100X100厘米
使用选择HTML元素,然后对
textContent
属性进行替换:

var el=document.querySelector('.fc\u img\u tooltip\u desc');
el.textContent=el.textContent.replace(/\Bcm/,函数(匹配){
返回“”+匹配;
})
20X10cm
10X100
50X50

100X100
根据您在问题正文的评论和澄清中的示例:

var text=$('.fc_img_tooltip_desc').text();
text=text.replace(/([^\s])cm/gi,$1cm
); $('.fc_img_tooltip_desc').html(文本)

20X10cm
10X100cm
50X50cm

100X100cm
在jQuery中,可以使用match()方法检索具有[conversion unit](在本例中为“cm”)的文本

它将从中返回一个[array],如下所示:

["10x20cm", index: 0, input: "10x20cm 10X100 50X50 100X100"]
请注意,此模式将检索与该条件匹配的“第一个”字符串

这里有一个JSFIDLE供进一步参考:


希望这对您的案例有所帮助。

如果可以的话,为了澄清这个问题,您的目标是得到一个“后面有一个“cm”的文本”?(例如10x20cm)?我想在10x20cm中添加空格或在10x20和cm之间加一个空格,以便显示像这样的10x20 cm不,我只想选择字符cm cm感谢添加另一个代码段,用
包装“cm”。这真的是你想要的吗?你能通过描述准确的“输入”和“输出”条件来澄清自己吗?比如“我有下面的示例HTML:…”和“我需要通过JS/JQuery获得下面的示例结果:…”。请。我已经更新了第一段,现在你已经完全按照你的要求完成了。请检查和反馈。另外,我在你的问题正文中添加了一些关于函数
fc_img_tooltip_desc
的一般要点(见底部的参考)。是的,好的,但我需要每行10x20 cm 10x20 cm的显示。我尝试添加这个变量el=document.querySelector('.fc_img_tooltip_desc');el.textContent=el.textContent.replace(/\Bcm/,function(match){return'+match;})在我的页面上,没有效果,除非添加
i
标志:
/\Bcm/i
请参见这里的底部页面,这在我的情况下不起作用,因为css字间距,为了在cm之间增加一个跨距,让cm可以工作吗?CSS单词间距与这个脚本没有任何关系。如果要在
span
元素中包装
cm
,请选中更新。我在你的网页上运行了这个,没有问题。
["10x20cm", index: 0, input: "10x20cm 10X100 50X50 100X100"]