假设正则表达式是最好的方法,我想选择第一个单词:
<div class="name">Bob Marley</div>
并用它来替换此div标签中的第二个单词:
<div class="message">Hey friend, how are you?</div>
这样最终结果等于:
<div class="message">Hey Bob, how are you?</div>
更新
这是我实际代码的混合体。我注意到,当它运行时,它只是将jquery文本放入我的文本区域而不是实际执行该函数。 这可能是因为我从需要val()的输入中提取而不是像上面示例所示的div标签中的文本。
$(".me_signup .name").bind("mouseup keyup", function(){
$(this).siblings('.message').text(function(i,txt) {
var name = $(this).val().split(' ')[0];
return txt.replace('friend', name);
});
});
这会创建一个用它写的文本区域
function (i, txt) {
var name = $(this).val().split(" ")[0];
return txt.replace("friend", name);
}
答案 0 :(得分:9)
你应该能够在没有正则表达式的情况下过关。
示例: http://jsfiddle.net/2R5kA/
$('div.message').text(function(i,txt) {
var name = $('div.name').text().split(' ')[ 0 ];
return txt.replace( 'friend', name );
});
如果名称前面可能有一些前导空格,请先使用jQuery's $.trim()
method。
示例: http://jsfiddle.net/2R5kA/1/
$('div.message').text(function(i,txt) {
var name = $.trim($('div.name').text()).split(' ')[0];
return txt.replace( 'friend', name );
});
答案 1 :(得分:1)
你可能想尝试这个功能,如果你不确定这个单词是朋友还是敌人还是其他东西,只要它是你要替换的第二个单词就行了。 只需在您的页面中调用此javascript函数即可... 在我的示例中,我添加了一个调用脚本的链接。不要忘记包含jquery库。
<div class="name">Bob Marley</div>
<div class="message">Hey friend, how are you?</div>
<a onclick="demoMatchClick()">Change</a>
<script type="text/javascript">
function ReplaceSecondWord() {
var strRegExp = new RegExp('Hey (.+), how are you?');
var strCurrentText = $(".message").html();
var strName = $(".name").html().split(" ");
strCurrentText = strCurrentText.replace(strCurrentText.match(strRegExp)[1], strName[0]);
$(".message").html(strCurrentText);
}
</script>
答案 2 :(得分:0)
你可以使用这个正则表达式得到第二个单词,假设你已经使用jQuery进入div
:
\w+\s(\w+)
大括号内的小组会给你第二个字。
我喜欢使用拆分更好的patricks解决方案虽然......:)