Короче использовать фильтр и уменьшить
const findById = inWhere => ({ _id }) => !!inWhere.find(t => t._id === _id)
const html_option = array1
.filter(findById(array2))
.reduce((html, ({_id, name}) =>
html += `<option value=${_id} selected>${name}</option>`, ''))
Можно использовать regex csmba при создании одной небольшой модификации к нему.
^\$?(\d{1,3},?(\d{3},?)*\d{3}(.\d{0,3})?|\d{1,3}(.\d{2})?)$
Я думаю, что ssg является правильным. Это не действительно хорошее использование Regex, особенно если Ваше программное обеспечение должно иметь дело с неамериканским центральным вводом данных.
Например, если обозначением денежной единицы является Евро, или японская иена или британский фунт какая-либо другая дюжина обозначений денежной единицы там?
Что относительно правил форматирования чисел?
В США Вы вошли бы 1,000,000.00
но во Франции, это должно быть 1.000.000,00
. Другие страны позволяют располагать с интервалами между группировкой цифры...
Если Вы используете прямой Regex, не принимая Культуру во внимание, то Вы никогда не собираетесь проверять успешно, если Вы не будете на 100% уверены, что Ваше программное обеспечение никогда не будет использоваться в неамериканском центральном контексте.
^\$?(\d{1,3},?(\d{3},?)*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{2})?)$
Будьте осторожны с плаваниями. В конечном счете Вы поразите случай такой как 0,01 представленных как 0,00999999. Строки или целые числа лучше для использования.
Попробуйте этого. Возможно, требуется некоторую точную настройку, чтобы только допускать единственную десятичную точку, но это действительно соответствует Вашим тестовым сценариям. Я надеюсь, что это помогает.
[$\d,.]+
Используйте это регулярное выражение для валюты США \ $ (\ D) * \ d Матчи 300, 12900 долларов Несоответствие $ 12900,00