Подскажите пожалуйста, почему не обрабатывается регулярное выражение и как поавильно сделать чтобы оно выполнялось?
В запрос попадают строки с русскими, латинскими буквами, а также кавычки и цифры. Но, если в запрос попадает запятая, он ее не хочет учитывать и возвращает ошибку чтения неизвестного символа. Изначально было объявлено "var regexp = /%(\w+)%/g;" и по какой то причине пропускал даже русские символы, кроме запятой и плюса. Если объявляю "var regexp = /%(,\w+)%/g;" - запятую не ищет и выбрасывает ошибку. Символ "," как только не экранировал и все без успешно
//собираем Subject//
var template = 'E=%email%; CN=%commonName%; G=%name%; SN=%surname%; STREET=%address%; L=%city%; S=%subject%; C=%country%';
fields = _.omitBy(fields, function(v){
return v == "exclude";
});
_.each(fields, function(v, k){
if (v == "exclude")
fields[k] = '';
});
template += (fields['inn'] && fields['inn'].length > 0 ? "; 1.2.643.3.131.1.1=" + fields['inn'] : "");
template += (fields['snils'] && fields['snils'].length > 0 ? "; 1.2.643.100.3=" + fields['snils'] : "");
template += (fields['ogrnip'] && fields['ogrnip'].length > 0 ? "; 1.2.643.100.5=" + fields['ogrnip'] : fields['ogrn'].length > 0 ? ";1.2.643.100.1=" + fields['ogrn'] : "");
template += (fields['fullname'] && fields['fullname'].length > 0 ? "; O=" + fields['fullname'] : "");
template += (fields['org'] && fields['org'].length > 0 ? "; OU=" + fields['org'] : "");
template += (fields['post'] && fields['post'].length > 0 ? "; T=" + fields['post'] : "");
template += (fields['unstructured'] && fields['unstructured'].length > 0 ? "; 1.2.840.113549.1.9.2=" + fields['unstructured'] : "");
var regexp = /%(\w+)%/g;
var subject = template.replace(regexp, function (s, m) {
return (fields[m] !== undefined && fields[m] !== 'exclude' ? fields[m] : "" )
});
yield DistinguishedName.Encode(subject, 0x10000000 | 0x00040000);
yield CertificateRequestPkcs10.propset_Subject(DistinguishedName);