Aggiungendo il nostro metodo .cleanup()
per l'oggetto String stesso, è quindi possibile pulire qualsiasi stringa in Javascript semplicemente chiamando un metodo locale, come questo:
# Attaching our method to the String Object
String.prototype.cleanup = function() {
return this.toLowerCase().replace(/[^a-zA-Z0-9]+/g, "-");
}
# Using our new .cleanup() method
var clean = "Hello World".cleanup(); // "hello-world"
Perché c'è un segno più alla fine dell'espressione regolare corrisponde a uno o più caratteri. Così, l'uscita avrà sempre una '-'
per ciascuna serie di uno o più caratteri non alfanumerici:
# An example to demonstrate the effect of the plus sign in the regular expression above
var foo = " Hello World . . . ".cleanup(); // "-hello-world-"
Senza il segno più il risultato sarebbe "--hello-world--------------"
per l'ultimo esempio.
Hai letto la stringa nella codifica errata. Se decodifichi come UTF-8, puoi vedere che il carattere è U + 2019 che è il carattere '''. Anche se ciò non influisce sulla soluzione in quanto UTF-8 garantisce che i codici ASCII non compaiano nei codici multibyte, penso che dovresti comunque aggiornare il tuo codice per utilizzare la codifica di testo corretta. Se fai questo errore qui, qualcuno potrebbe copiare il tuo codice e fare lo stesso errore altrove dove mostrerà ai tuoi clienti. –