pracuję nad pewnym walidacji po stronie klienta za pomocą formularza kontaktowego rodzaju, na stronie internetowej nie jest obecnie online, aby po stronie serwera nie jest istotne.Sprawdź, czy wartość tablica znajduje się w ciąg
Próbuję stworzyć „filtr słowo” złapać na żadnym nadużyciem języka obscenicznego zanim forma jest „złożony”.
Herezje kod, bez przekleństw ...
function filterInput(str) {
var inputFilter = ['word1', 'word2', 'word3'];
var arrayLength = inputFilter.length;
if (inputFilter.indexOf(str) > - 1) {
// Word caught...
} else {
// Clear...
}
Jeśli użytkownik miały wejść 'word1', będzie to złapać słowo. Jeśli użytkownik wprowadzi słowo "word1word2" lub "John is word3", to go nie przechwyci.
pierwotnie miał dla pętli, który pracował lepiej, ale nadal nie będzie działać bez spacji między słowami („word1word2”).
Każde wejście byłoby bardzo mile widziane, Szukałam, ale nic zupełnie nie pasuje do moich potrzeb.
EDYCJA: Więc też wymyślam rozwiązanie, ale widzę różne sposoby, w jakie można to osiągnąć Ciekawi mnie, jak to działa i dlaczego konkretny sposób jest lepszy?
Herezje co wymyśliłem ...
function filterInput(str) {
var inputFilter = ['word1', 'word2', 'word3'];
var arrayLength = inputFilter.length;
for (var i = 0; i < arrayLength; i++) {
if (str.includes(inputFilter[i])) {
window.alert('Message...');
return;
}
}
}
I m dopiero zaczyna, więc myślę, że na razie uniknę ES2015 +. Jeśli chodzi o niektórych, jak to działa w porównaniu do tego, co wymyśliłem? – mrkd1991
@ mrkd1991: Nie wiesz, co masz na myśli przez "jak to działa". Jeśli masz na myśli wydajność, silniki JavaScript są ** bardzo ** szybkie przy wywołaniach funkcji. Oto artykuł, który zrobiłam na ten temat w 2012 roku; nawet IE6, najwolniejsza silnik JavaScript o co można zapytać, czy je tak szybko, że nie był to czynnik: http://blog.niftysnippets.org/2012/02/foreach-and-runtime-cost.html –
W jaki sposób ta funkcja służy uzyskaniu pożądanego rezultatu i jaka jest różnica między tą i nową próbą? – mrkd1991