2012-09-20 3 views
0

Когда я получаю значение списка в столбце «Автор» в списке в SharePoint 2010, получает отображается следующее:Удаление цифр из строки

2; # SP10Setup

Теперь пользователь, который создал что конкретным элементом списка был «SP10Setup», теперь есть простой способ удалить «2; #» в начале SP10Setup, не затрагивая цифры в «SP10Setup»?

У меня есть метод, который в настоящее время вскрышных все цифры

//method to strip out unnecessary digits 
public static string RemoveDigits(string key) 
{ 

return Regex.Replace(key, @"\d", ""); 
} 

это то, как я получаю особое значение элемента списка:

string author = listItem["Author"].ToString(); 

это то, как я удалил ненужные цифры и символы:

//calling the RemoveCharacter method 
string noDigitsAuthor = RemoveDigits(author); 
string cleanedupAuthor = noDigitsAuthor.Replace(";", "").Replace("#", ""); 

В результате получается «SPSetup», но в идеале я хотел бы получить результат «SP10Setup».

Что бы самый быстрый и простой способ для достижения этой цели ...

Заранее спасибо

ответ

3

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

String author = "2;#SP10Setup"; 
SPFieldLookupValue lookup = new SPFieldLookupValue(author); 
string cleanedupAuthor = lookup.LookupValue; 
int authorId = lookup.LookupId; 

так что вы будете иметь:

cleanedupAuthor = "SP10Setup" 
authorId = 2 
+0

wow это сработало красиво так просто и не нужно возиться с регулярным выражением и заменять символы ... Спасибо большое –

1

Используйте регулярное выражение как ^\d*;#. ^ соответствует началу строки, \d* говорит, что совпадение ноль или более цифр и ;# являются литералами.

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