JSFiddle - React, Tailwind, and code Playground

by Alexander

JavaScript

console.clear();

function clean(val) {
	if (!val || typeof val != 'string') return '';
	return val
		.replace(/\\/g, '/')
		.replace(/[\r\n]/g, ' ')
}

function alpha(val) {
	return clean(val)
		.replace('"', "'")
		.replace(/[^'`\da-zA-Z_А-ЯЁёа-я\s\-\(\)\.,@&\+\/]/igu, '')
		.trim()
}

function normalizeTitle(val) {
	if (!val || typeof val != 'string') return '';
	val = val
//		.toLowerCase()
		.replace(/\\/g, '/')
		.trim()
/*
		.replace(/^[a-zа-я]+/u, s => {
			return (s.length > 1 && s.length < 4)
				? s.toUpperCase()
				: s[0].toUpperCase() + s.slice(1)
		})
//*/
	return val
}

function title(val) {
	if (!val || typeof val != 'string') return '';
	return normalizeTitle(alpha(val))
}


function subway(s) {
	return normalizeTitle(alpha(s.replace(/м\.|метро/iu, '')))
}

console.log(subway('м. елизаровская'))

var a = [
	'AR/VR разработчик',
	'PHP Developer (middle/senior)',
  'php Developer',
	'Россия',
  'Москва',
  'АХИРЕННАЯ КАПС-ЛОК ВАКАНСИЯ!!!!'
];

for (let s of a) {
	console.log( title(s) )
}