You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 9-regular-expressions/07-regexp-escaping/article.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,39 +1,39 @@
1
1
2
2
# Escaping, caratteri speciali
3
3
4
-
Come abbiamo visto, un backslash `pattern:\` viene utilizzato per indicare classi di caratteri, e.g. `pattern:\d`. Quindi nelle regexps è un carattere speciale (proprio come nelle stringhe).
4
+
Come abbiamo visto, un backslash `pattern:\` viene utilizzato per indicare classi di caratteri, e.g. `pattern:\d`. Quindi nelle regexp è un carattere speciale (proprio come nelle stringhe).
5
5
6
-
Esistono anche altri caratteri speciali, che hanno un significato speciale nelle regexp. Vengono utilizzati per ricerche più avanzate. Qui vediamo la lista completa di questi parametri: `pattern:[ \ ^ $ . | ? * + ( )`.
6
+
Esistono anche altri caratteri speciali, che hanno un significato speciale nelle regexp. Vengono utilizzati per ricerche più avanzate. Qui vediamo la lista completa: `pattern:[ \ ^ $ . | ? * + ( )`.
7
7
8
8
Non provate ad imparare a memoria la lista, presto inizieremo ad utilizzarli e sarete in grado di ricordarli automaticamente.
9
9
10
10
## Escaping
11
11
12
12
Ipotizziamo di voler trovare un punto (il carattere "."). Non "qualsiasi carattere", semplicemente un punto.
13
13
14
-
Per poter utilizzare un carattere speciale come se fosse uno normale, è sufficienti farlo precedere da un backslash: `pattern:\.`.
14
+
Per poter utilizzare un carattere speciale come se fosse uno normale, è sufficiente farlo precedere da un backslash: `pattern:\.`.
15
15
16
-
Questo è detto "escaping di un carattere".
16
+
Abbiamo appena fatto l'"escaping di un carattere".
alert( "Chapter 511".match(/\d\.\d/) ); // null (cercanod un punto \.)
21
+
alert( "Chapter 511".match(/\d\.\d/) ); // null (cercando un punto \.)
22
22
```
23
23
24
-
Anche le parentesi sono dei caratteri speciali, quindi se volessimo utilizzarle, dovremmo utilizzare `pattern:\(`. L'esmpio sotto cerca la stringa `"g()"`:
24
+
Anche le parentesi sono dei caratteri speciali, quindi se volessimo utilizzarle, dovremmo utilizzare `pattern:\(`. L'esempio sotto cerca la stringa `"g()"`:
25
25
26
26
```js run
27
27
alert( "function g()".match(/g\(\)/) ); // "g()"
28
28
```
29
29
30
-
Se stiamo cercando un backslash `\`, il quale è un carattere speciale, come nelle stringhe anche nelle regexp dovremmo inserirne due.
30
+
Se stiamo cercando un backslash `\`, che è un carattere speciale sia nelle stringhe che nelle regexp, dovremmo inserirne due.
31
31
32
32
```js run
33
33
alert( "1\\2".match(/\\/) ); // '\'
34
34
```
35
35
36
-
## Uno slash
36
+
## Lo slash
37
37
38
38
Il simbolo di slash `'/'` non è un carattere speciale, ma in JavaScript viene utilizzato per aprire e chiudere le regexp: `pattern:/...pattern.../`, quindi dovremo fare l'escape anche di questo carattere.
39
39
@@ -79,7 +79,7 @@ Gli apici della stringa "consumano" i backslash e li interpreta come a se stanti
79
79
80
80
Quindi `new RegExp` ottiene la stringa senza i backslash. Questo è il motivo per cui la ricerca non funziona!
81
81
82
-
Per sistemarla, dobbiamo inserire i backslash doppi, poiché gli apici della stringa trasformeranno `\\` in `\`:
82
+
Per correggerla, dobbiamo inserire i backslash doppi, poiché gli apici della stringa trasformeranno `\\` in `\`:
0 commit comments