replace tekst in string probleem

Pagina: 1
Acties:

  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
Dit voorbeeld uit mijn boek werkt, hoewel ik verbaasd ben overde afwezigheid van aanhalingstekens bij de declaratie van de variabelen

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<HTML>
    <HEAD>
        <TITLE>
            Replacing Text
        </TITLE>
        <SCRIPT LANGUAGE="JavaScript">
            <!--
            function replacer()
            {
                var regExp = /is/g
                var text = document.form1.text1.value.replace(regExp, "isn't")
                document.form1.text1.value = text
            }
            // -->
        </SCRIPT>
    </HEAD>

    <BODY>
        <H1>Replacing Text</H1>
        <FORM NAME="form1">
            <INPUT TYPE="TEXT" NAME="text1" VALUE="Now is the time">
            <BR>
            <INPUT TYPE="BUTTON" ONCLICK="replacer()" VALUE="Replace Text">
        </FORM>
    </BODY>
</HTML>


Mijn probleem is dat ik een forward slash (\) wil vervangen door een gewone slash(/). Als ik dat in deze code invooer onstaat een commentaar symbool (//) waarna de erop volgende code wordt genegeerd. Gebruik van &#47 (/) en &#92 (\) werkt ook niet en uiteindelijk kun je \ bijv. niet declaren als var forwslash="\".

Iemand nog een suggestie ?

A friend is one who knows us, but loves us anyway.


  • djluc
  • Registratie: Oktober 2002
  • Nu online
Misschien dit er van maken: \\\\. Escape steeds de backslash.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 08:54

crisp

Devver

Pixelated

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html>
    <head>
        <title>
            Replacing Text
        </title>
        <script type="text/javascript">

            function replacer(form)
            {
                var regExp = /\\/g;
                var text = form.elements['text1'].value.replace(regExp, '/');
                form.elements['text1'].value = text;
            }

        </script>
    </head>

    <body>
        <h1>Replacing Text</h1>
        <form action="#">
            <input type="text" name="text1" value="some text" /><br />
            <input type="button" value="replace" onclick="replacer(this.form)" />
        </form>
    </body>
</html>

Intentionally left blank


  • djluc
  • Registratie: Oktober 2002
  • Nu online
Ziet er iets netter uit idd Chem ;)
forward slash (\) wil vervangen door een gewone slash(/).
Kijk eens naar die slashes. Een forward slash wijst naar voren: /
Een "gewone slash" bestaat niet aangezien: / net zo goed een slash is als: \ Dat noemen ze dan ook een backslash. Die wijst naar achteren ;)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 08:54

crisp

Devver

Pixelated

djluc schreef op 11 juni 2004 @ 19:09:
Ziet er iets netter uit idd Chem ;)
Chem??? gaan we schelden? :P

Intentionally left blank


  • djluc
  • Registratie: Oktober 2002
  • Nu online
crisp schreef op 11 juni 2004 @ 19:17:[...]Chem??? gaan we schelden? :P
Mag dat niet tegen modjes?

ontopic: waarom geen quotes om die var bosmonster crisp?

  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
Crisp is the Man!
_/-\o_ _/-\o_ _/-\o_ _/-\o_

p.s. vreemd dat de var declaratie zonder aanhalingstekens kan
p.s. Slashverwarring : In Engelse boeken noemen ze in ieder geval / slash en \ backslash, terwijl als je het als een karate-slash ziet sla je van je af (forward)

tenzij le linkshandig bent ?! 8)7 , afijn een ezelsbrug ontbreekt bij mij, een urangutang brug.

[ Voor 16% gewijzigd door Oysterhoys op 11-06-2004 20:10 ]

A friend is one who knows us, but loves us anyway.


Verwijderd

djluc schreef op 11 juni 2004 @ 19:37:
[...]
Mag dat niet tegen modjes?

ontopic: waarom geen quotes om die var bosmonster crisp?
Dit zei Crisp over RegExp's in PHP vs. die in JS in een mailtje aan mij:

Omdat in JS een reguliere expressie een echt object is itt tot PHP waar het gewoon een string-representatie is. Daarmee komt de implementatie in JS dichter bij het originele PCRE concept zoals bijvoorbeeld in Perl :)
In JS kan je dus gewoon op een OO-manier omgaan met reguliere expressies dmv methods, PHP kent enkel een soort functie-call-achtige interface die soms daardoor wat minder flexibel is; voor dingen als het doorgeven van een match aan een functie moet je in PHP al met eval-achtige construcites werken (e-modifier) of een andere construct gebruiken (preg_replace_callback); in JS kan je gewoon een functie als argument opgeven. PHP heeft ook niet een echte exec()-like method, wat toch eigenlijk de meest native method van een reguliere expressie is.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 08:54

crisp

Devver

Pixelated

JavaScript:
1
var re = /foo/g;

Dit is een RegExp literal; zie het als een soort short-hand constructor; je kan dus ook een echte constructor gebruiken:
JavaScript:
1
var re = new RegExp('foo', 'g');

Intentionally left blank

Pagina: 1