Это длиннее, чем регулярное выражение с одной строкой, но оно преобразует вход в формат желаемого выхода, который вы ищете, используя split и regex:
var yourstring = 'SST+CONF!001 001 "407968017" "Projector Serial Number"';
// Regex to replace " with '
yourstring = yourstring.replace (/"/g,"'");
// Split where " " is
strArray = yourstring.split(" ");
var output = "[";
for (var i = 0; i < strArray.length; i++) {
if(i < 2){
strArray[i] = "'" + strArray[i] + "'";
}
if (i < 3){
output += strArray[i] + ", ";
}
else {
output += strArray[i] + " ";
}
}
// Regex to replace last character with ]
output = output.replace(/.$/, "]");
console.log(output);
[116 ] Надеюсь, это поможет!
SPFieldUserValueCollection делает точно, что Вы ищете. Его конструктор принимает SPWeb и строку пользователей. Объекты SPFieldUserValue в наборе обеспечивают Свойство пользователя, которое возвращает соответствующие объекты SPUser для сети.
private void ProcessUsers(SPListItem item, string fieldName)
{
string fieldValue = item[fieldName] as string;
SPFieldUserValueCollection users = new SPFieldUserValueCollection(item.Web, fieldValue);
foreach(SPFieldUserValue uv in users)
{
SPUser user = uv.User;
// Process user
}
}
Тип SPFieldUser наследовал свое поведение от стандартного SPFieldLookup, который также хранит и идентификатор и Заголовок и имеет соответствующий SPFieldLookupValueCollection. (Слабая) ссылочная целостность поддержек идентификатора, в то время как кэшируемое Значение допускает быстрые запросы.
Это работает на меня получающий SPSuser от пользовательского поля It, должно быть то же самое для извлечения его от данных о событии.:
private SPUser getGroup(SPListItem item, string fieldName)
{
string fieldValue = item[fieldName] as string;
if (string.IsNullOrEmpty(fieldValue)) return null;
int id = int.Parse(fieldValue.Split(';')[0]);
SPUser user = item.Web.AllUsers.GetByID(id);
return user;
}
Целое число обращается к идентификатору пользователя в пользовательской базе данных локального SPWEBS. Это, однако не синхронизировавшее, таким образом, пользователь, возможно, был удален из пользовательской базы данных, так как элемент списка был сохранен.