2013-06-11 2 views
0

это тот случай,разбор коллекции строки и слом древнееврейского только

проходит:

"אבגדהו" 
"אב'גדהו" 
"אב-גדהו" 
"אב"גד" 
"אבגדהו" 
"אב.גד" 
"אבגדהו" 

терпит неудачу:

"א*בAb" 
"א/ב1c" 

пытающегося код ниже я получаю поведение starnge что в ближайшее время в качестве первого испытания на отказ все последующие, которые предположительно проваливаются также

поэтому вопрос с помощью C# WinForms настольное приложение, что это правильный способ проверить строку

будет содержать только א TO ת
позволит содержать символы .-' , если строка содержит в любом месте внутри него числовой, или любой другие симв языка = сбой

public string OnlyHebPlusSomeSpclChars(string StrToVerify) 
    { 

     bool ISheb = StrToVerify.All(c => c >= 0x0580 && c <= 0x05ff); 
     if (ISheb) 
     { 
      return StrToVerify; 
     } 
     else 
     { 
      return "";//Test String contain 1 or more invalid chars 
     } 

    } 

Update

SO к сожалению забыть meniton пространства являются allowd. Тар не было поле пароля, но f.name + l.name коллекции, имеющие пространства также

"אב גד הו"

ответ

1

Это нормально. Чтобы объяснить, почему второе значение выходит из строя, это потому, что он имеет апострофный характер '. То же самое с последующими строками. Они имеют либо ', -, ., '' (2 одиночные апострофы)

Чтобы это исправить, нужно просто добавить допустимые символы в чеке.

bool ISheb = StrToVerify.All(c => (c >= 0x0580 && c <= 0x05ff) 
      || c == '.' //add this 
      || c == '-' //add this 
      || c == '\'' //add this 
      || c == ' '); //add this 
+0

я обновил свой вопрос, так как все это смешивает нелинейное более 200 записей на тест некоторые нормально, и некоторые из них «недействительных» строк – LoneXcoder

+0

вещи, я думал, что диапазон я дал включает ваше добавление символов, которые в стороне, по-прежнему такое же поведение - скажем, поток - 1,0,1,0,0,0,1,1,1,1,1,1 дает вам 1,0 1,0,0,0,0, 0,0,0,0,0,0,0,0,0 : 1 = true, 0 = false – LoneXcoder

+0

Вы только что отредактировали список, который находится по прямой. это решение работает в соответствии с вашей спецификацией: * будет содержать только א TO ת позволит содержать символы .- 'если строка содержит где-нибудь внутри нее числовые или любые другие символы языка = сбой * – aiapatag