Я сейчас на https://regex101.com/ и имею следующие введенные (с глобальным флагом):
REGULAR EXPRESSION: ([A-Z])
TEST STRING: ABCdefGHI
Справа в Match Information
о Match Information
следующая строка находится в ABCGHI
группе: ABCGHI
Я пытаюсь воспроизвести это на JavaScript, и у меня возникают проблемы:
var myString = "ABCdefGHI";
var myRegexp = /([A-Z])/g;
var match = myRegexp.exec(myString);
console.log(match[1]);
Вышеприведенное просто возвращает A
Желаемый результат: ABCGHI
Я немного огляделся, и, похоже, есть способ сделать это, перейдя через результирующий массив группировки RegEx, нажав все элементы, а затем выполнив объединение строк. Мне интересно, если это полностью необходимо, или если я пропущу что-то очевидное.
Вы можете использовать array.join('')
где array
- возвращаемое значение string.match(re)
:
var myString = "ABCdefGHI";
var myRegexp = /([A-Z])/g;
var result = myString.match(myRegexp).join('');
console.log(result);
//=>"ABCGHI"
Или, если вам разрешено менять регулярное выражение, используйте отрицание:
var repl = myString.replace(/[^A-Z]+/, '')
//=> "ABCGHI"
string.replace