Что было бы хорошим регулярным выражением для удаления скобок и любых (но только) завершающих пробелов?Удалить скобки и конечные пробелы из переменной
Пример: "Hello [world] - what is this?"
будет переведен на "Hello - what is this?"
.
Что было бы хорошим регулярным выражением для удаления скобок и любых (но только) завершающих пробелов?Удалить скобки и конечные пробелы из переменной
Пример: "Hello [world] - what is this?"
будет переведен на "Hello - what is this?"
.
использовать следующее регулярное выражение , Он удалит скобки и их конечные пробелы.
/(\s\s)*(\s(?=\[.*?\]\s))*\[.*?\](\s\s)*/g
Использование:
var testStr = "Hello [world] - what is this?";
console.log(testStr.replace(/(\s\s)*(\s(?=\[.*?\]\s))*\[.*?\](\s\s)*/g, ""));
Входы/выходы:
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world]- what is this? Output: Hello - what is this?
Input: Hello [world]- what is this? Output: Hello - what is this?
Input: Hello[world] - what is this? Output: Hello - what is this?
Input: Hello[world] - what is this? Output: Hello - what is this?
Input: Hello[world]- what is this? Output: Hello- what is this?
Это все - другие удаляют как верхние, так и задние белые пробелы вокруг скобок или оставляют пространства нетронутыми - спасибо! – TMC
Вы можете сделать это следующим образом:
var result = mystring.replace(/^\s*\[[^]]+]\s*|\s*\[[^]]+]\s*$|(\s)\s*\[[^]]+]\s*/g, '$1');
str.replace(/\[.+?\]\s*/g,'');
Вы можете позволить выражение чередовать в квадратные скобки вещей и задней бело-пространстве:
str.replace(/\[[^\]]*\]|\s+$/g, '')
Модификатор /g
используется для сопоставления все вхождения вместо первого (по умолчанию).
Update
В случае, [hello]
предшествует пробел, что пространство не будет удалено, и вы должны были бы еще .replace()
вместо чередования:
str.replace(/\[[^\]]*\]/g, '').replace(/\s+$/, '');
(+1) самый простой, самый оптимизированный –
Вы протестировали его? – acdcjunior
Я думаю, что он означает завершающее пробел после квадратных скобок, а не в конце строки – simonzack
Вы имеете в виду в квадратные скобки слова? Или что-нибудь, что начинается с '[' и заканчивается '' '. И что вы пробовали до сих пор? –