Hallo liebe JS Community,
ich habe ein Problem mit dem Parsen eines Strings. Zur Erklärung: Das Script soll einen String aus einem externen Programm parsen und entsprechend formatiert angezeigt werden. Statt jedem "\\r\\n" soll ein <br> eingefügt werden, sodas ich den String nach dem Parsen mittels DOM Manipulation in einem DIV-Element "wohlgeformt" anzeigen kann. Ich habe verschiedene Tools genommen, welche mir die Syntax des Regulären Ausdrucks als richtig makiert haben. Ich weiß aber nicht warum JS ein Problem damit hat bzw. wo ich einen Fehler gemacht haben könnte.
Ich bekomme im Chrome immer den Fehler "Uncaught TypeError:undefined is not a function".
Mir kam schon die Idee auf dass er möglicherweise ein Problem mit replace hat und habe nur mal auf die \\r\\n gematched, was wiederum auch kein erfolg brachte. Ich bin mit meinem Latein ziemlich am Ende. Vielen Dank.
PS: Vielleicht kann man die Sache ja auch etwas eleganter lösen. Ich wäre hier für entsprechende Hinweise sehr dankbar.
ich habe ein Problem mit dem Parsen eines Strings. Zur Erklärung: Das Script soll einen String aus einem externen Programm parsen und entsprechend formatiert angezeigt werden. Statt jedem "\\r\\n" soll ein <br> eingefügt werden, sodas ich den String nach dem Parsen mittels DOM Manipulation in einem DIV-Element "wohlgeformt" anzeigen kann. Ich habe verschiedene Tools genommen, welche mir die Syntax des Regulären Ausdrucks als richtig makiert haben. Ich weiß aber nicht warum JS ein Problem damit hat bzw. wo ich einen Fehler gemacht haben könnte.
Ich bekomme im Chrome immer den Fehler "Uncaught TypeError:undefined is not a function".
Mir kam schon die Idee auf dass er möglicherweise ein Problem mit replace hat und habe nur mal auf die \\r\\n gematched, was wiederum auch kein erfolg brachte. Ich bin mit meinem Latein ziemlich am Ende. Vielen Dank.
PS: Vielleicht kann man die Sache ja auch etwas eleganter lösen. Ich wäre hier für entsprechende Hinweise sehr dankbar.
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="./javascript/jquery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">
// string=websocket.payload.text == "{\"type\":\"answer\",\"attributes\":{\"from\":\"bub\",\"sdp\":\"v=0\\r\\no=- 5889535793452741171 2 IN IP4 127.0.0.1\\r\\ns=-\\r\\nt=0 0\\r\\na=group:BUNDLE audio video\\r\\na=msid-semantic: WMS dXBxUsGg3LKlBaM9wIfmN1vRShcncgo4Eg5e\\r\\nm=audio 63240 RTP/SAVPF 111 103 104 0 8 106 105 13 126\\r\\nc=IN IP4 192.168.200.2\\r\\na=rtcp:1 IN IP4 0.0.0.0\\r\\na=candidate:3025050341 1 udp 2113937151 192.168.200.2 63240 typ host generation 0\\r\\na=candidate:4207765013 1 tcp 1509957375 192.168.200.2 0 typ host generation 0\\r\\na=ice-ufrag:7RgmNz32RO2LS4mE\\r\\na=ice-pwd:Bx6aXE1VNIIj8M60mz9hpydl\\r\\na=fingerprint:sha-256 8F:07:24:AF:93:04:B9:6C:11:58:5E:1C:6D:F0:A3:48:95:1D:2E:30:6F:E8:94:A5:33:7D:4C:32:E7:D3:E3:0F\\r\\na=setup:active\\r\\na=mid:audio\\r\\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\\r\\na=sendrecv\\r\\na=rtcp-mux\\r\\na=rtpmap:111 opus/48000/2\\r\\na=fmtp:111 minptime=10\\r\\na=rtpmap:103 ISAC/16000\\r\\na=rtpmap:104 ISAC/32000\\r\\na=rtpmap:0 PCMU/8000\\r\\na=rtpmap:8 PCMA/8000\\r\\na=rtpmap:106 CN/32000\\r\\na=rtpmap:105 CN/16000\\r\\na=rtpmap:13 CN/8000\\r\\na=rtpmap:126 telephone-event/8000\\r\\na=maxptime:60\\r\\na=ssrc:2623607546 cname:e++dW4vfI5ZcsMQw\\r\\na=ssrc:2623607546 msid:dXBxUsGg3LKlBaM9wIfmN1vRShcncgo4Eg5e 58df3add-26d9-4be8-802e-9178650031b7\\r\\na=ssrc:2623607546 mslabel:dXBxUsGg3LKlBaM9wIfmN1vRShcncgo4Eg5e\\r\\na=ssrc:2623607546 label:58df3add-26d9-4be8-802e-9178650031b7\\r\\nm=video 63240 RTP/SAVPF 100 116 117\\r\\nc=IN IP4 192.168.200.2\\r\\na=rtcp:1 IN IP4 0.0.0.0\\r\\na=candidate:3025050341 1 udp 2113937151 192.168.200.2 63240 typ host generation 0\\r\\na=candidate:4207765013 1 tcp 1509957375 192.168.200.2 0 typ host generation 0\\r\\na=ice-ufrag:7RgmNz32RO2LS4mE\\r\\na=ice-pwd:Bx6aXE1VNIIj8M60mz9hpydl\\r\\na=fingerprint:sha-256 8F:07:24:AF:93:04:B9:6C:11:58:5E:1C:6D:F0:A3:48:95:1D:2E:30:6F:E8:94:A5:33:7D:4C:32:E7:D3:E3:0F\\r\\na=setup:active\\r\\na=mid:video\\r\\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\\r\\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\\r\\na=sendrecv\\r\\na=rtcp-mux\\r\\na=rtpmap:100 VP8/90000\\r\\na=rtcp-fb:100 ccm fir\\r\\na=rtcp-fb:100 nack\\r\\na=rtcp-fb:100 goog-remb\\r\\na=rtpmap:116 red/90000\\r\\na=rtpmap:117 ulpfec/90000\\r\\na=ssrc:2940920821 cname:e++dW4vfI5ZcsMQw\\r\\na=ssrc:2940920821 msid:dXBxUsGg3LKlBaM9wIfmN1vRShcncgo4Eg5e 050c4be5-838f-4f8d-9a03-ff79823696af\\r\\na=ssrc:2940920821 mslabel:dXBxUsGg3LKlBaM9wIfmN1vRShcncgo4Eg5e\\r\\na=ssrc:2940920821 label:050c4be5-838f-4f8d-9a03-ff79823696af\\r\\n\",\"callId\":\"5464xvd\"}}"
function parse(){
var sdp = $("#sdp_area").val();
// /[{].*[}]/g nur JSON content
var sdp_neu=sdp.match(/[{].*[}]/g);
// regex:(\\\\r\\\\n) oder [\\][\\][r][\\][\\][n] Filtern die Zeilenumbrüche
var blub=sdp_neu.replace(/([\\][\\][r][\\][\\][n])/g, '<br />' );
document.getElementById('test').innerHTML=blub;
//console.log(JSON.stringify(sdp));
}
</script>
</head>
<body>
<div id="textfeld">
<h1>Bitte kopieren Sie hier den Payload rein!</h1>
<textarea id="sdp_area">
</textarea>
</div>
<div id="buttons">
<button id="parser" onclick="parse()">
Parsen
</button>
</div>
<div id="test">
hier kommt die Ausgabe...
<div>
</body>
</html>
Zuletzt bearbeitet von einem Moderator: