Парсер комплексного числа

Парсер комплексного числа

В этом небольшом материале мы расскажем как из комплексного числа вида a+bi выделит вещественную и мнимую часть, на языке javascript.

Да, такого материала достаточно много и на рускоязычных сайтах, но к сожалению, у них у всех, по крайней мере что мне попадались на начало 2017 года, существует недостаток.

Они все изначально подразумевают, что  в исходном формате сначала идет вещественная часть а потом мнимая.

Как только мы пытаемся написать a+bi или -ib+a, скрипты как один начинают ошибаться.

Хотелось бы представить функцию, которая избавлена от этого недостатка.

 

function fromi(string) {

regex = /[-+]?i?\d*\.?\d*i?/ig;

string = String(string).replace (/\s+/g, '');

match = string.match (regex);

regex1=/\i/ig;

if(match[0]=="+i"|match[0]=="-i"|match[0]=="i")
 {match[0]+="1"}

if(match[1]=="+i"|match[1]=="-i"|match[1]=="i") 
{match[1]+="1"}

if (match[0].match(regex1)) 
{im=match[0].replace(/i/ig,'');
re=match[1];} 
else {im=match[1].replace(/i/ig,'');
re=match[0];}

if(re==undefined){re=0;}
if(im==undefined){im=0;}

return re+" "+im;

};

Входная форма комплексного числа может быть любой. Выходная  дает нам отдельно вещественную часть ( в переменной re) и мнимую (в переменной im).

Несомненно, умные люди смогут усовершествовать эту функцию, что бы она была компактнее, красивее и быстрее. И я был бы этому только рад.

 

Поиск по сайту