как преобразовать буквенно-цифровую строку в нижний регистр в javascript

#javascript

#javascript

Вопрос:

Я читаю текстовое поле и преобразую это значение в нижний регистр и сравниваю с массивом слов, если оно совпадает, оно выдает ошибку.

Но проблема в том, что когда мы вводим текст в виде буквенно-цифрового значения, я не могу преобразовать строчные буквы и получаю ошибку времени выполнения как «Объект не определен»

 if(streetAddress != null){
    for(var k=0; k<notValidPostalChars.length; k  ){

        var secondWord = notValidPostalChars[k];

        if (streetAddress.toLowerCase().startsWith(stopWord.toLowerCase())) {
            alert("Invalid Error Message");
            document.getElementById("address").focus();
        return false;
        }

    }
}
  

В приведенном выше примере StreetAddress также может содержать буквенно-цифровой код, и он может быть написан строчными или прописными буквами.

Это будет введено конечными пользователями, а notValidPostalChars — это массив, состоящий из всех предопределенных слов с ПРОПИСНЫМИ буквами

Комментарии:

1. как присвоить значение streetAddress ? что находится в stopWord ( может быть, так и должно быть secondWord )?

2. Если вы получаете значение элемента управления form, это всегда строка, даже если она содержит цифры. Покажите несколько примеров ввода и ошибок.

3. оповещение (StreetAddress. В нижний регистр()); для отладки то же самое для stopword

4. Буквенно-цифровые строки могут преобразовываться в нижний регистр: jsfiddle.net/jMBqX . Итак, возможно, есть другая проблема?

5. Пожалуйста, постарайтесь предоставлять своим пользователям понятные сообщения: ‘Not invalid mesage’ означает, что это допустимое сообщение.

Ответ №1:

Возможно, stopWord не определено?

 var secondWord = notValidPostalChars[k];
if (streetAddress.toLowerCase().startsWith(stopWord.toLowerCase())) {
//                                         ^did you mean secondWord?
   alert("Not invalid mesage");
//       ^ did you mean 'invalid message / not a valid message'?
   document.getElementById("address").focus();
   return false;
}
  

Комментарии:

1. SopWord — это ваше второе слово, я считываю данные из массива и сравниваю один за другим

2. Почему тогда вы присваиваете secondWord в цикле?

3. Прочитайте адрес улицы со страницы jsp, недопустимый почтовый индекс — это массив, содержащий все недопустимые символы, я считываю один элемент из массива и проверяю, начинается ли с него адрес улицы или нет??

4. Нет, это не то, что вы делаете: вы сравниваете первый символ streetAddress с stopWord — каким бы это ни было. Попробуйте streetAddress.toLowerCase().startsWith(secondWord.toLowerCase())

5. Позвольте мне попробовать это сейчас, в то же время, один из элементов массива второго слова имеет символ «/», вы подозреваете, что это может быть причиной «Объект не определен»