Как отрезать слово до запятой?

96
08 августа 2019, 10:20

Есть строка типа:

NAME=ИМЯ,SURNAME=ФАМИЛИЯ,PATRONYMIC=ОТЧЕСТВО, IIN=123456789012, 
COUNTRY=СТРАНА,CITY=ГОРОД, EMAIL=ИМЯ@MAIL.RU

Нужно искать слово COUNTRY или (NAME, SURNAME, CITY, EMAIL). Если есть такое слово, то сразу отрезать это слово до запятой, то есть IIN=123456789012

Как можно сделать это попроще на одной или не более двух строк?

Answer 1

var string = "NAME=ИМЯ,SURNAME=ФАМИЛИЯ,PATRONYMIC=ОТЧЕСТВО, IIN=123456789012, COUNTRY=СТРАНА,CITY=ГОРОД, EMAIL=ИМЯ@MAIL.RU"; 
 
// вариант через match 
 
console.log(string.match(/NAME=(.*?),/m)[1]); 
console.log(string.match(/SURNAME=(.*?),/m)[1]); 
console.log(string.match(/PATRONYMIC=(.*?),/m)[1]); 
console.log(string.match(/IIN=(.*?),/m)[1]); 
console.log(string.match(/COUNTRY=(.*?),/m)[1]); 
console.log(string.match(/CITY=(.*?),/m)[1]); 
console.log(string.match(/EMAIL=(.*),?/m)[1]); 
 
// вариант через split 
 
var array = string.split(","); 
array.forEach(function(value) { 
  console.log(value.split("=")[1].trim()); 
  // в "value.split("=")[0].trim()" название ключа 
});

Если нужно делать разбор с несколькими строками используйте split("\n")

Answer 2

let str = 'NAME=ИМЯ,SURNAME=ФАМИЛИЯ,PATRONYMIC=ОТЧЕСТВО, IIN=123456789012, COUNTRY=СТРАНА, CITY=ГОРОД, EMAIL=ИМЯ@MAIL.RU'; 
    let findStr = 'COUNTRY'; 
    let result = str.split(','); 
    result.forEach(element => { 
        if (element.trim().indexOf(findStr) == 0) { 
            result = element; 
        } 
    }); 
    console.log(result);

Answer 3
var t = 'NAME=ИМЯ,SURNAME=ФАМИЛИЯ,PATRONYMIC=ОТЧЕСТВО, IIN=123456789012, COUNTRY=СТРАНА, CITY=ГОРОД, EMAIL=ИМЯ@MAIL.RU';
    const result = {};
    t.split(',').map(v => {
        var T = v.trim().split('=');
        result[T[0]] = T[1]; 
    });

в результате будет такой обект

result = {
    CITY: "ГОРОД"
    COUNTRY: "СТРАНА"
    EMAIL: "ИМЯ@MAIL.RU"
    IIN: "123456789012"
    NAME: "ИМЯ"
    PATRONYMIC: "ОТЧЕСТВО"
    SURNAME: "ФАМИЛИЯ"
 }

чтобы првоерить есть то что нам нада так

if (result.EMAIL) { //
  // делаем что то
}
READ ALSO
Поймать ввод текста в форме

Поймать ввод текста в форме

Разрабатываю поиск с использованием технологии AjaxКак поймать ввод текста вернее каждый введеный символ в форме с идентификатором search_text?

127
Отображение внешнего ключа в DataGridView

Отображение внешнего ключа в DataGridView

Есть две связанные таблицы: TableA (ID_TableA, NameA) и TableB (ID_TableB, ID_TableA, NameB), связь один ко многимВ таблице TableB есть внешний ключ ID_TableA

116
Как работает #define?

Как работает #define?

Не могу понять, как работает #defineПонимаю только, что при проверке с помощью #if будет выполняться или не выполнять код, в зависимости от того...

144
Валидация ASP.NET MVC

Валидация ASP.NET MVC

У меня есть два класса

125