我想用链接

时间:2017-05-27 13:28:32

标签: javascript jquery regex

请帮帮我。我在创建页面中所有用户名的链接时遇到问题。我使用javascript替换名称,但我只能替换一个名称。

例如,我有4个用户名:usera,userb,userc和userd。每当这些单词显示在页面中时,我希望它们被替换为:

usera = <a href="link.php?user=usera">usera</a>
userb = <a href="link.php?user=userb">userb</a>

等等。

这是我的代码,但我只能替换一个。

<html>
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>

  <h1>replacing usernames to link</h1>

  <p>
   usera, userb, userc, userd, userk, userks
  </p>

</body>
</html>

这是我的javascript

var $els = $('body *');

$els.each(function(){

  $(this).html($(this).text().replace(/usera/g, '<a href="link.php?user=usera">usera</a>'));

  //$(this).html($(this).text().replace(/userb/g, '<a href="link.php?user=userb">userb</a>'));


});

只有一个用户,我想创建一个数组,但我不知道语法。请帮帮我。

2 个答案:

答案 0 :(得分:1)

最好尝试使用map()数组函数

&#13;
&#13;
var $els = $('body p').text().trim().split(',');
var res = $els.map(function(a) {
  return '<a href="link.php?user=' + a + '">' + a + '</a>'
})
$('body').append(res.join('<br>'))
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>replacing usernames to link</h1>
<p> usera, userb, userc, userd, userk, userks</p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用字符类扩展对a-d字母的检查,这样可行,您不需要数组。

$(this).html($(this).text().replace(/user([a-d])/g, '<a href="link.php?user=user$1">user$1</a>'));

演示:https://jsfiddle.net/24c6t03g/