Текстовое поле Javascript "Скруббер" - PullRequest
2 голосов
/ 18 августа 2011

Я не нашел хорошего решения: у меня есть текстовое поле, в которое пользователи должны иметь возможность вводить специфическую информацию. Например, команда может быть «9030 OUT FU [1234 TEST]». Мне нужно «почистить» это текстовое поле, чтобы убедиться, что данные были напечатаны именно в этом формате (прописные буквы не нужны). Однако существует примерно 50 из этих различных типов команд.

Я довольно новичок в javascript, но с хорошим руководством могу это понять. Возможно ли это с помощью JavaScript? Как только данные введены в текстовое поле, будет запущена функция для возврата некоторой информации, и текстовое поле будет очищено для следующей команды. Никакие 2 команды не могут быть введены одновременно. Мне просто нужно проверить формат на 100% точный для каждой команды. Любая помощь приветствуется, спасибо.

Ответы [ 3 ]

3 голосов
/ 18 августа 2011
<script type="text/javascript">   
function scrub(text) {
    var commands = new Array{"someCommand","anotherCommand",...};
    for (var i = 0; i <= commands.length; i++) {
        if (text.value.toLowerCase().equals(commands[i])) {
            //command is valid; do something here
        } else {
           alert("Invalid command");
        }
    }
    text.value = ""; //clears the text box
}
</script>

Для вашего textarea сделайте это:

<textarea onblur="scrub(this);" ...></textarea>
0 голосов
/ 18 августа 2011

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

HTML:

<input type="text" id="code" />
<input type="button" value="test" onclick="alert(checkCode())" />

JavaScript:

function checkCode(){
var code = document.getElementById('code').value;
return code.match(/\d+ \w+ \w+ \[\d+ \w+\]/)!=null ? true : false;
}

http://gskinner.com/RegExr/ очень полезен для регулярных выражений.

Когда вы говорите «именно этот формат», вы должны понимать, что мы понятия не имеем, что вы имеете в виду. Существует бесконечное количество шаблонов, которые можно использовать для описания вашего примера. Приведенное выше регулярное выражение будет соответствовать, если в коде есть строка чисел, затем слово, затем другое слово, затем открывающая скобка, затем строка чисел, затем слово, затем закрывающая скобка.

0 голосов
/ 18 августа 2011

Есть ли набор ключевых слов?И можно ли их сочетать только определенным образом?

Похоже, пара шаблонов регулярных выражений сможет сделать свое дело.

например: для соответствия регулярному выражению "9030 OUT FU [1234 TEST]" было бы: /\d{4} OUT FU \[\d{4}\]/.

OUT FU и может быть заменен \w{3} и \w{2} соответственно (если вы не хотите, чтобы любое слово было разрешено).

...