2011-10-25 6 views
7

Я проверял все через Интернет, но на самом деле не могу найти какое-либо конкретное решение моей проблемы.ASP Classic: проверьте, содержит ли строка только допустимые символы

Как проверить, состоит ли строка, состоящая только из объявленных допустимых символов?

Я хочу, чтобы моя строку состоит только 0-9, A-Z и A-Z

Так строка oifrmf9RWGEWRG3oi4m3ofm3mklwef-qæw должна быть недействительны из-за - и æ в то время как строка joidsamfoiWRGWRGmoi34m3f должен быть действительным.

Я использую встроенный RegExp для разметки строк, но можно ли просто проверить и вернуть логическое значение false или true?

мое регулярное выражение:

set pw = new regexp 
pw.global = true 
pw.pattern = "[^a-zA-Z0-9]" 

newstring = pw.replace("iownfiwefnoi3w4mtl3.-34ø'3", "") 

Спасибо :)

+0

Что не так с методом '.Test()'? –

+0

Не знал, что он существует :) Спасибо – Behrens

ответ

7

Вы могли бы сделать Test, которая возвращает истину или ложь

If(pw.Test("string")) Then 
'' Do something 
End If 
+0

Работает как шарм! Спасибо друг! :) – Behrens

0

Вы могли бы сделать нечто вроде:

Set match = pw.execute("iownfiwefnoi3w4mtl3.-34ø'3") 

if match.count > 0 then 
    ' your pattern matched, so it's invalid 
    badString = true 
else 
    badString = false 
end if 
2

Попробуйте -

Dim myRegExp, FoundMatch 
Set myRegExp = New RegExp 
myRegExp.Pattern = "[^a-zA-Z0-9]" 
FoundMatch = myRegExp.Test("iownfiwefnoi3w4mtl3.-34ø'3") 

Если FoundMatch правда движок регулярных выражений нашел символ, который не-г или А-Z или 0-9 и ваша строка не является действительным.

0

Вместо замены вы можете посмотреть и посмотреть, есть ли соответствие любому персонажу за пределами белого списка. Общее для каждого синтаксиса матча here

0

[a-zA-Z0-9] работает ... Я попробовал его против вашей строки здесь http://gskinner.com/RegExr/?2u7c3 и здесь http://regexpal.com/ ... возьмите морковь. Я также не могу вспомнить, что используется vexcript-движок regex, но это может иметь какое-то отношение к вашей проблеме. Это также работает ...

\ D? \ W

+0

+1 «возьмите морковь» –

+0

Я знаю, что текущая струнная вещь работает :) Моя проблема в том, что теперь она просто прошивает строку. Но я хочу, чтобы она проверила, содержит ли строка недопустимые символы и не полосать это :) – Behrens

Смежные вопросы