2017-03-17 43 views
1

我打算从other question再现数组这样的:仅将颜色应用于数组的一部分?

console.log(arrayStr); 

,输出:

(a) - text1, (b) - text2, (c) - text3, (d) - text3 

我如何申请一个颜色(a) (b)等部件组成?

正则表达式是:/\([^)]+\)/g;

感谢。

+2

,应用不同色彩的HTML输出你需要包装这些领域在他们自己的元素,即'span'中,并将CSS应用于这些跨度 –

+0

这是一个很棒的解决你能提供一下逻辑吗?谢谢@RoryMcCrossan –

+0

我给你加了一个答案 –

回答

2

要达到此目的,您可以扩展您的正则表达式来捕获组。然后,您可以使用它将匹配的(X)值包装到您可以应用某些CSS的span元素中。试试这个:

$('div').html(function(i, html) { 
 
    return html.replace(/(\([^)]+\))/g, "<span>$1</span>"); 
 
})
span { color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div>(a) - text1, (b) - text2, (c) - text3, (d) - text3</div>

这里是一个天然的JS实现:

var el = document.getElementById('foo'); 
 
el.innerHTML = el.innerHTML.replace(/(\([^)]+\))/g, "<span>$1</span>");
span { color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="foo">(a) - text1, (b) - text2, (c) - text3, (d) - text3</div>

+0

谢谢。什么是$ 1?如何用普通的js来做到这一点?谢谢。 –

+0

'$ 1'是正则表达式匹配的第一个组。我更新了答案,包括本地实现 –

+0

我在我的跨度中收到$ 1 ... –

相关问题