const arr1 = ['Капиуcта', 'Капитcл'];
const startingSubstring = (arr) => {
const charts = arr[0].split('');
return charts.reduce((result, chart) => {
const isEvery = arr.every(itemArr => itemArr.startsWith(result + chart));
return isEvery ? (result + chart) : result;
}, '');
};
console.log(startingSubstring(arr1)); //Капи
Нашел такое решение. Но здесь используется строка в качестве юзернэйма. А в моем случае - переменная.
str ='^File'
db.collectionname.find({'files':{'$regex':str}})
<input id="date" type="time" />
каким образом можно с помощью jquery-validation
plugin сделать так, что если все поля валидны, то снимался type=disabled у кнопки и в случае любого error на поле - кнопка опять получала type=disabled
$('#form input').on('change', () => {
const isValid = $('#form').valid(); // проверяем всю форму при каждом изменении любого поля
$('#form input[type=submit]').attr('disabled', !isValid);
return isValid; // выполнить запрос если true
});
<input type="radio" name= "priority" id="radio1" value="1"/> Высокий <!-- дней 1-->
<br/>
<input type="radio" name= "priority" id="radio2" value="10"/> Низкий <!-- дней 10-->
<br/>
<input type="text" name="date" id="date"/>
change
для input[type=radio]
$('input[type=radio]').on('change', function (e) {
const count = parseInt(e.target.value); // получить кол-во дней
const date = new Date();
date.setDate(date.getDate() + count); // добавляем к текущей дате дни
$('#date').val(date.toISOString())
})
formValidate(e) {
const el = e.target; // элемент на котором произошло событие
const { value, name} = el; // значение и имя элемента
switch(name){
case ‘phone’: ... this.validatePhone(value) ...
...
}
}
form.elements[i].addEventListener('blur', e=> validation.formValidate(e));
const models = [ // модель для таблицы
{id: 0, name: '0000'},
{id: 1, name: '1111'},
{id: 2, name: '2222'}
];
const table = document.getElementById('table');
const phrase = document.getElementById('search');
const theElement = document.getElementById("none");
function render(table, items) { // отрисовка строк в табл.
table.innerHTML = items.reduce((rows, item) => {
rows += `<tr><td>${item.id}</td><td>${item.name}</td></tr>`;
return rows;
}, '');
}
function search(value) { // поиск в модели
const req = new RegExp(value, 'i');
// здесь укажите поля по которым искать
const items = models.filter(item => req.test(item.name)); // фильтр по модели,
render(table, items); // рисуем табл для отфильтрованных элементов модели
theElement.innerHTML = items.length === 0 ? "По вашему запросу не найдено ни одного магазина." : ""; // сообщение
}
phrase.addEventListener('change', e => search(e.target.value)); // при изменении строки поиска
render(table, models); // начальная отрисовка табл.
sql_connect.query("select COUNT(1) FROM chat_msg WHERE id != 0;", function(err,res) {
let sql_size, str, str1;
if (err) console.log(err);
str = JSON.stringify(res);
str1 = JSON.parse(str);
sql_size = str1[0]["COUNT(1)"];
console.log(sql_size);
// поместите цикл внутрь callback
for (let i = 2; i < sql_size+2; i++) {
sql.connect.query("SELECT msg_text FROM chat_msg where id = " + i + ";", funvtion(...){ /* здесь опять будет async*/ });
}
});
router('/user', (req, res, next) =>{
const {userId} = req.session; // здесь могу ошибаться посмотрите док password...
User.findById(userId) // model User в mongoose
.then(user=>{
const viewModel ={
user, //user для этой сессии
... // что то еще нужное
};
res.render('view-user', viewModel)
})
.catch(err=>next(err);
}
$('.test2') .live( events, handler )