Целая «обратная строка на месте» - это устаревший вопрос о программировании на языке C, и люди, которые были опрошены ими (для мести, может быть?), спросят. К сожалению, это часть «In Place», которая больше не работает, потому что строки практически в любом управляемом языке (JS, C # и т. Д.) Используют неизменяемые строки, тем самым побеждая всю идею перемещения строки без выделения какой-либо новой памяти.
Хотя вышеприведенные решения действительно меняют строку, они не делают этого, не выделяя больше памяти и, таким образом, не удовлетворяют условиям. Вы должны иметь прямой доступ к строке как выделенную и иметь возможность манипулировать своим исходным местоположением памяти, чтобы иметь возможность отменить ее.
Лично я действительно ненавижу подобные вопросы интервью, но, к сожалению, , я уверен, что мы будем их видеть на долгие годы.
Вы можете добавить модификатор «i», который означает «игнорировать регистр»
var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);
задаются как второй параметр:
new RegExp('[\\?&]' + name + '=([^&#]*)', "i")