2015-09-29 2 views
1

Есть ли способ обернуть текст перед или после символа @ на адрес электронной почты? HTML или CSS, или, возможно, js/jQuery - все возможности для решения.Можете ли вы обернуть текст символом @?

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

+0

С помощью HTML и CSS вы не можете указать, где произошел разрыв, только чтобы вы могли заставить его * переломить. Таким образом, вам понадобится JavaScript, чтобы разбить его на '@'. Но вы не показали, что вы пробовали в своем вопросе. – j08691

+0

Вы могли бы просто заменить "@" на "
@"? – dandavis

+0

Если я неправильно понимаю вас @ j08691, это не совсем правильно, так как есть [''] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/wbr), который будет разорваться при необходимости (Edit: я только что заметил, что он не работает в IE, вздох!) – freefaller

ответ

4

Вы можете добавить ярлык inline span на символ.

$("p").html($("p").text().replace('@', '<span class="after">@</span>')); 

Fiddle: http://jsfiddle.net/21jqbtv9/5/

Если вы хотите что до или после определенного символа, вы должны использовать lookahead и lookbehinds соответственно.

lookbehind:./(? < = @) +/

lookahead: /.+([email protected])/

Изменить первый аргумент функции replace() к одному из выше регулярного выражения. Вот еще один пример с скрипкой

$(document).ready(function() { 
    var email = $("p").html(); 
    var emailParts = email.split('@'); 
    var beforeText = emailParts[0]; 
    var afterText = emailParts[2]; 
    $("p").html($("p").html().replace(beforeText, "<span class='after'>" + beforeText + "</span>")); 
}); 

http://jsfiddle.net/jL5kL72q/

Для части после @ символа, просто измените beforeText на afterText.

+0

Выглядит хорошо для меня. –

2

Другой вариант заключается в использовании HTML закодирован &#x200b;

Согласно this answer это приведет к тому же результату, что и <wbr> тег, который я был собирается предложить (пока j08691 не указал, не работает в IE) ,

Таким образом, вы могли бы иметь адрес электронной почты, как что-то вроде ...

email&#x200b;@example.com 

Вот пример персонажа в действии, что вы можете запустить через сниппет ...

<div> 
 
quickbrownfoxjumpsoverthelazydogquickbrownfoxjumpsoverthelazydog&#x200b;quickbrownfoxjumpsoverthelazydogquickbrownfoxjumpsoverthelazydog 
 
</div>

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