Как уже указывали другие, если все строки заканчиваются на 'Link', просто используйте замену.В противном случае любой из этих методов будет работать нормально:
var i = 0;
var strings = [
'EducationLink',
'BioLink',
'InterestsLink'
];
var s = '';
var r = /^(.+)Link$/
for (i = 0; i < strings.length; i += 1) {
s = strings[i];
//s = s.substring(0, s.indexOf('Link')); //Uncomment for substring
//s = s.match(r)[1]; //Uncomment for regex
s = s.replace('Link', '');
strings[i] = s;
}
console.log(strings);
Скопируйте и вставьте в окно консоли браузера для запуска.
Чтобы ответить на ваш вопрос («Однако почему мой RegEx не работает? ") в комментарии к другому ответу ваш RegEx делает следующее:
/^ (^Link) $/
//Each regex term on own line, commented below
^ //start of string
//Literal space
(^Link) //Capturing group, string starting with 'Link'.
//Literal space
$ //end of string
Хотя вы можете иметь два идентификатора" начала строки "в регулярном выражении, всегда будет только один" начало строки "».Символ ^
является только отрицанием в классе символов, который заключен в квадратные скобки, а не изогнут.Если вы хотите захватить буквальную карету (^
), поставьте перед ней обратную косую черту (\^
).