я хочу, чтобы первые два символа моей строки не были специальными символами

Я хочу, чтобы первые два символа моей строки не были специальными символами

function detectInvalidChars(limitField)
{
    var len=limitField.value.length;
    var char1=limitField.value.substring(0,1);
    var char2=limitField.value.substring(1,2);

    if(char1=='&'||char1=='<' char1=='!' || char2=='&'||char2=='<'..........so on)
    {
    alert("Invalid character");
    limitField.value = limitField.value.substring(0,len-1);
    }
}

вместо сопоставления char1 и char2 с каждым специальным символом. Что я могу сделать?

1
nl ja de
Использовать JavaScript RegExp! w3schools.com/jsref/jsref_obj_regexp.asp
добавлено автор One Man Crew, источник
Что такое «особый характер»? Будет ли это включать, например, α (греческая буква альфа)? Легче ли определить класс допустимых символов или класс неприемлемых символов?
добавлено автор Ted Hopp, источник
специальные символы - это те, что присутствуют на клавиатуре, отличные от чисел и albhabets. всего 32 специальных персонажа.
добавлено автор user2020825, источник

4 ответы

Вы можете использовать регулярное выражение:

var re = /^([&
1
добавлено
Почему не просто /\ W/?
добавлено автор Jørgen R, источник
Как насчет символа ? ? он потерпит неудачу
добавлено автор Shiplu Mokaddim, источник
@jurgemaister \ W соответствует _ , который является специальным символом. См. Мой ответ для правильного выражения
добавлено автор Shiplu Mokaddim, источник
@TedHopp извините. На самом деле это не соответствует _ , что проблема.
добавлено автор Shiplu Mokaddim, источник
@ Глутамат - К сожалению. Пересмотренный, чтобы поймать либо/или вместо обоих. Благодарю.
добавлено автор Ted Hopp, источник
@ shiplu.mokadd.im - Также теперь исправлено.
добавлено автор Ted Hopp, источник
@ shiplu.mokadd.im - \ W не соответствует подчеркиванию.
добавлено автор Ted Hopp, источник
Как насчет re.exec ("a & bc") ?
добавлено автор C5H8NNaO4, источник

Вы можете использовать регулярное выражение для этого в подстроке оригинала.

подстрока получает часть строки от «от» до «до».

/ ^ [0-9a-z] + $/- это регулярное выражение, которое допускает только 0 ... 9 и a ... z

function is_part_alnum(value, from, to) 
    substring = value.substring(from, to);
    if(!substring.match(/^[0-9a-z]+$/) {
        alert("Invalid character(s)");
    }
}
0
добавлено
это тоже не работает :(
добавлено автор user2020825, источник

Если вы не хотите использовать регулярное выражение и хотите определить свой собственный набор специальных символов, вы можете использовать такую ​​функцию:

function detectInvalidChars(s, count) {
    var specialChars = "[email protected]#$%^&*()+=-[]\\\';,./{}|\":<>?~_";
    var firstChars = s.substr(0, count).split('');
    for(var i=0; i

Где s - ваша строка, а count - номер первых символов, которые должны быть исследованы.

0
добавлено

загляните в строковый метод .charCodeAt (n)

вы должны иметь возможность сравнить значения ascii в диапазонах.

например, если вы хотите исключить элементы управления charactercs, вы можете написать что-то вроде

if (mystring.charCodeAt(0)<32 || mystring.charCodeAt(1)<32) {
    alert("Invalid character");
}

или используйте регулярное выражение.

You may find this question helpful: isalpha replacement for JavaScript?

0
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском