2017-01-18 3 views
1

In dem Text, den ich bekomme, möchte ich alle Dialog-Anführungszeichen durch doppelte Anführungszeichen ersetzen, während die einfachen Anführungszeichen, die in Wendungen wie "sind nicht" verwendet werden. Ich mag ein String.replace() mit einem regulären Ausdruck verwenden, um dies zu tun ..Regex zum Ändern des Anführungsstils

E: g:

var text = "'I'm the cook,' he said, 'it's my job.'"; 
console.log(text.replace(/*regEx*/, "\"")); 
//should return → "I'm the cook," he said, "it's my job." 

Jetzt habe ich einen regulären Ausdruck weiß, dass für mich funktioniert, zumindest für den Beispieltext.

console.log(text.replace(/\B'/g, "\"")); 

Allerdings frage ich mich, ob es eine andere Regex ist, kann ich dies zu erreichen, verwenden. Nur neugierig.

+1

Ich bin ziemlich sicher, das ist der beste Weg, es zu tun ... – MacPrawn

+0

@MacPrawn Danke. – Piyush

+1

Ich glaube nicht, dass dies zuverlässig durchgeführt werden kann. Die menschliche Sprache ist zu kompliziert. Ein '' 'am Ende eines Wortes nach einem' s kann oder darf kein Anführungszeichen sein. –

Antwort

1

Ich habe festgestellt, dass der von Ihnen angegebene reguläre Ausdruck keine einfachen Anführungszeichen am Anfang der Zeichenfolge ersetzt. Ich kam stattdessen mit dieser nach oben:

var str = "'Hello', - she said\n'Hi!' - he whispered\n"; 
console.log(str.replace(/\B'|'\B/g, "\"")); 
Verwandte Themen