2016-07-08 11 views
-2

Ich arbeite an einigen Javascript, die Farbe Ihre Javascript-Code von Konverter Text in Text mit umgebenden span-Element.So ersetzen Sie Großbuchstaben (und Rest des Wortes) der Zeichenfolge

Ich möchte jedes Wort machen, die mit einem Großbuchstaben beginnt ergrauen, mit <span class="gray"> WordWithCapitalLetterAtBeginning </span>

Apple() sollte ergrauen

APPLE sollte ergrauen

bANANA sollte nicht ergrauen

sollte nicht grau werden

orange sollte nicht ergrauen

Was würde ich in einem String setzen replace in Javascript regex es auf die Spanne ersetzen?

Bisher habe ich versucht: /([A-Z])/g, aber das tut es nur mit dem Großbuchstaben, aber nicht den Rest des Wortes.

Hier ist meine js so weit:

function stylifyCode(s) 
{ 
    s=s.replace('var','<span style="color:blue;">var</span>'); 
    s=s.replace('\n','<br>') 
    s=s.replace(/([A-Z])/g, '<span class="gray">$1</span>') 

    return s; 
} 

und wenn die Seite geladen wird:

document.getElementById("mycode").innerHTML = stylifyCode("var hello = 'world!';\nnew Awesome(hello+World())"); 

Danke.

+0

Können Sie Ihren HTML-Code angeben? Soll diese Prüfung nur für "span" -Elemente ausgeführt werden? –

+0

@MohitBhardwaj aktualisierte Frage. –

+0

@gcampbell aktualisierte Frage. –

Antwort

3

Sie so etwas wie die folgenden bedeuten?

var input = "This is a Test String with some Words in It."; 
 
var output = input.replace(/\b([A-Z]\w*)\b/g, "<span class='gray'>$1</span>"); 
 

 
console.log(output); 
 
document.getElementById("result").innerHTML = output;
.gray { 
 
    background-color: #CCCCCC; 
 
}
<div id="result"></div>

Erläuterung: die regex\b([A-Z]\w*)\b entspricht eine Wortgrenze, die von einem Großbuchstaben, gefolgt von Null oder mehreren Wortzeichen, die von einer Wortgrenze gefolgt.

+0

Genau! Vielen Dank. und danke für die Erklärung auch! –

1

"new Apple() Test Test, hello".replace(/([A-Z])/g, "<span class='gray'>$1</span>")

+0

Hinkommen, aber ich möchte das ganze Wort grau werden lassen. Ich habe das schon probiert, habe vergessen in meine Frage aufzunehmen. –

Verwandte Themen