2017-03-20 2 views
0

Ich habe eine Zeichenfolge "demo1 \ demo2".Split String str.split ("\") mit Javascript

var str="demo1\demo2"; 
console.log(str.split("\\")[1])); \\gives undefined 
console.log(str.split("\")[1])); \\gives undefined 

gibt undefined. ich muss Demo2 in console.log

+0

Entfliehen sie die '' '\' '' in der Zeichenfolge wie folgt: 'console.log ("Demo \\ Demo" .split ("\\") [1])' –

+1

von ihnen Beide geben ein Syntaxfehler – JJJ

+0

Sie könnten versuchen, den String zuerst durch eine Escape-Funktion auszuführen und dann den Split auszuführen. – xdhmoore

Antwort

2

Sie die d nach dem \ in str entkommen. Sie müssen die \ in str entkommen:

const str = 'demo1\\demo2'; 
 
console.log(str.split('\\'));

+1

meine Zeichenkette ist "demo \ demo" und nicht "demo \ demo" – janIreal23

+0

lassen Sie mich die Frage umschreiben meine Zeichenkette ist "demo1 \ demo2" und ich brauche demo2 – janIreal23

+1

Um einen Backslash in eine Zeichenkette in Javascript zu setzen, haben Sie um es zu entkommen. Also '' demo \\ demo "' wird als 'demo \ demo' gedruckt. Wenn Sie eine Zeichenfolge mit einem umgekehrten Schrägstrich von einer externen Quelle (Datei, API, usw.) erhalten, werden die Backslashes bereits ausgeblendet. Versuchen Sie, 'console.log ('demo \ demo')' und 'console.log ('demo \\ demo')' in Ihrer Konsole auszuführen. – SimpleJ

-2

Wenn die Einzelteile innerhalb Notwendigkeit zu entkommen, konnte man run it through something like this zuerst.

Wenn Sie brauchen nur ‚demo2‘ und Sie wissen, welche Zeichen es hat, könnten Sie so etwas wie:

console.log(str.match(/[^a-z0-9A-Z]([a-z0-9A-Z]*)$/)[1]); 

oder ähnliches.

0

Genau wie @SimpleJ bereits geantwortet hat, müssen Sie Ihren Backslash umgehen, damit es nicht als das nächste Zeichen selbst entgeht. Als Beweis, wenn Sie hier nicht Ihre Backslash mit einem anderen Backslash, ist, wie Sie Ihre Zeichenfolge ausgegeben wird (falls Sie dies selbst schon nicht eingecheckt haben):

> console.log('demo1\demo2') 
demo1 
undefined 
> console.log('demo1\\demo2') 
demo1\demo2 
undefined 
> console.log("demo1\demo2") 
demo1 
undefined 
> console.log("demo1\\demo2") // same goes for double quoted strings 
demo1\demo2 
undefined 

So ist dies der Weg zu gehen:

"demo1\\demo2".split("\\")