<some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>
function isHasPropertyChain(obj, propertyChain){
if(!(obj instanceof Object)) throw new TypeError("obj должен быть объектом");
if((!(propertyChain instanceof Array)) && (!(typeof(propertyChain) === 'string'))) throw new TypeError("propertyChain должен строкой или массивом");
var properties = (propertyChain instanceof Array)
? propertyChain
: propertyChain.split('.');
if (properties.length == 0) return false;
var testedProp = properties[0];
var res = (testedProp in obj);
if(res){
if((properties.length > 1)){
return (obj[testedProp] instanceof Object) && isHasPropertyChain(obj[testedProp], properties.splice(1));
}
}
return res;
}
function predicator(v){
return !isHasPropertyChain(this, v);
}
var obj = {/* тестируемый объект */};
absentKeys = keys.filter(predicator, obj);
const fs = require('fs');
const StringDecoder = require('string_decoder').StringDecoder;
const decoder = new StringDecoder('utf8');
// читаем файл
fs.readFile(path, (e, file) => {
if (e) throw new Error(e);
file = decoder.write(file); // конвектируем в строку
file = file.replace('строка которую меняем', 'строка на которую меняе');
fs.writeFile(patch, file, callback); // записываем обратно
})
function parseMobile(mobile) {
let mob = String(mobile).replace(/[^0-9]/g, '')
if (mob.length === 10 && mob.substr(0, 3) === '033')
mob = '777' + mob.substr(1)
return mob
}