di solito mi aspetterei un String.contains()
metodo, ma non sembra esserci uno.
che cosa è un senso ragionevole verificare questo?
En title : How to check whether a string contains a substring in JavaScript?
di solito mi aspetterei un String.contains()
metodo, ma non sembra esserci uno.
che cosa è un senso ragionevole verificare questo?
ES6 ha introdotto
String.prototype.includes
:includes
non ha il supporto IE, anche se. in un ambiente ES5 o più vecchio,String.prototype.indexOf
, che restituisce − 1 quando non trova la sottostringa, può invece essere usato:indexOf()
è...c'è un
String.prototype.includes
in ES6:si noti che questo non funziona in Internet Explorer o in altri vecchi browser senza il supporto ES6 o incompleto. per farlo funzionare in vecchi browser, si potrebbe desiderare di utilizzare un transpailer come Babel, una libreria di shim come es6-shim, o questo polyfill da MDN:
un'altra alternativa è KMP.
l'algoritmo KMP cerca una stringa length- m in una stringa length- n nel caso peggiore O (n + m) tempo, rispetto ad un caso peggiore di O (n ⋅ m) per l'algoritmo ingenuo, in modo da utilizzare KMP può essere ragionevole se vi preoccupate per la complessità del tempo peggiore.
ecco una implementazione JavaScript di Project Nayuki, tratto da https://www.nayuki.io/res/knuth-morris-pratt-string-matching/kmp-string-matcher.js:
esempio di utilizzo: