javascript
  • regex
  • 2013-02-11 4 views 1 likes 
    1

    Я хочу добавить строку {something} в строку, если она содержит href=" или href='.Использование regex положить строку после шаблона

    Примечание - может быть место вокруг =.

    Так что, если мой вход <a href="http://google.com">Click</a>

    Выход должен быть <a href="{something}http://google.com">Click</a>

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

    /href\s*=\s*(\"|\')/ 
    

    Я проверил need help with regex in javascript to replace string pattern

    +0

    Почему вы не используете DOM для этого? – elclanrs

    ответ

    3

    Общего ответ, следуя от вашей попытки:

    string.replace(/href\s*=\s*(\"|\')/, "href=$1{something}"); 
    

    ($1 просто ссылается на захвачено группу, независимо от соответствующей вашего выражения в скобках в своем регулярном выражении)

    Исправить Способ изменения href элемента:

    element.href = '{something}' + element.href; 
    
    +0

    Спасибо, и в моем случае я хотел сохранить все пробелы, так что это то, что я последовал - 'string.replace (/ (href \ s * = \ s * [\" | \ '] \ s *)/, "$ 1 {something}"); 'для новичков - я использую группу захвата. Весь шаблон внутри первой скобки захватывается как $ 1 -' href \ s * = \ s * [\ "| \ '] \ s * 'и я добавляю' {something} 'после него. –

    +0

    и btw, я не изменяю якорный тег в dom. Я изменяю текст поля ввода. Яркий тег отображается в содержимом. Не уверен, что здесь будет работать DOM-манипуляция с использованием 'element.href'. –

    +1

    @Sandeepan Вы не можете заменить круглые скобки квадратными скобками вокруг кавычек, подобных этому, что приводит к тому, что все символы внутри квадратных скобок будут соответствовать буквально, включая трубку ('|'). Вместо этого вы можете сделать это '/ (href \ s * = \ s * [" '] \ s *)/', которое будет соответствовать одному из символов в« наборе символов », в этом случае одна из меток кавычек – nbrooks

    Смежные вопросы