Ограничить ввод пользователя символами в кодовой странице IBM System i 00280 - PullRequest
3 голосов
/ 27 февраля 2012

Нам нужно ограничить ввод пользователя на классическом веб-сайте ASP символами, разрешенными кодовой страницей 00280 IBM System i.

Есть ли способ сделать это разумным способом, кроме функции (JavaScript | VBScript), проверяющей каждый символ входной строки на соответствие строке разрешенных символов?

Базовая классическая функция ASP, о которой я подумал:

Function CheckInput(text, replacement)
    Dim output : output = ""
    Dim haystack : haystack = "abcd.. " ' Insert here the allowed characters.
    Dim i : i = 0
    For i = 1 To Len(text)
        Dim needle : needle = Mid(text, i, 1)
        If InStr(haystack, needle) = 0 Then
            needle = replacement
        End If
        output = output & needle
    Next
    CheckInput = output
End Function

Будет ли - в моей функции - RegExp излишним?

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Краткий ответ на ваш первый вопрос: Нет. На ваш второй вопрос: RegEx может не помочь вам в этом, потому что не вся реализация RegEx в браузерах будет поддерживать символы, которые вам нужно протестировать, а также версия RegEx для VBScript.

Даже при использовании предложенного вами подхода к коду потребуется очень тщательно продумать. Чтобы иметь возможность разместить набор символов, которые вы хотите поддерживать, в виде строкового литерала, кодовая страница, в которой вы сохраняете файл ASP, должна быть такой, чтобы охватывать все необходимые символы, или, в качестве альтернативы, вам нужно будет использовать AscW, чтобы помочь вы строите строку, содержащую эти символы.

Один немного более простой подход - использовать Javascript и установить кодировку страницы и кодовую страницу в UTF-8. Это позволит вам создать строковый литерал, содержащий любой набор символов.

0 голосов
/ 29 февраля 2012

Поскольку полагаться на проверку браузера, как правило, небезопасно, вам следует рассмотреть возможность изменения интерфейса приложения IBM i (ранее OS / 400) для приема данных UCS-2 и выполнения любой необходимой проверки и преобразования на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...