как заменить последнее вхождение слова в JavaScript?

Я понял, что, вероятно, лучше всего использовать change_view и что это срабатывает до того, как содержимое извлекается из модели, поэтому я использую object_id, запрашиваю запись, делаю мой код, а затем сохраняю детали

def change_view(self, request, object_id, form_url='', extra_context=None):
    #Get the record
    obj = ShopApiDefinition.objects.get(id=object_id)
    #get a value as I use that in my code
    self.password = obj.password
    #do some code
    shopify_shop = "a value from my code"
    obj.about_the_shop = shopify_shop  # change field
    obj.save()  # this will update only

    return super(ShopApiDefinitionAdmin, self).change_view(
        request, object_id, form_url, extra_context=extra_context,
    )

Это, кажется, работает. Он сохранил значение в модели, и когда форма загружается, она заполняется как существующими данными, так и новыми данными из моего кода

Благодарю

Грант

9
задан Cœur 30 April 2017 в 14:44
поделиться

2 ответа

Я думаю, вам нужно следующее:

str.replace(/^(.*)<br>(.*?)$/, '$1$2')

Это жадно сопоставляет все, от начала до
, затем
, потом неуклюже доводит все до конца.

3
ответ дан 4 December 2019 в 13:05
поделиться

Вы можете использовать тот факт, что кванторы жадные:

str.replace(/(.*)<br>/, "$1");

Но недостатком является то, что это приведет к обратному отслеживанию.

Другим решением было бы разделить строку, поместив последние два элементы вместе, а затем соединить части:

var parts = str.split("<br>");
if (parts.length > 1) {
    parts[parts.length - 2] += parts.pop();
}
str = parts.join("<br>");
13
ответ дан 4 December 2019 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: