如何使用jQuery和Regex.选择第二个单词。。?

如何使用jQuery和Regex.选择第二个单词。。?,jquery,regex,Jquery,Regex,假设regex是实现这一点的最佳方法,我想选择以下的第一个单词: <div class="name">Bob Marley</div> 这将创建一个文本区域,其中写入 function (i, txt) { var name = $(this).val().split(" ")[0]; return txt.replace("friend", name); } 没有正则表达式你应该可以过得去 示例: 如果名称前可能有一些前导空格,那么首先使用它 示例:

假设regex是实现这一点的最佳方法,我想选择以下的第一个单词:

<div class="name">Bob Marley</div>
这将创建一个文本区域,其中写入

function (i, txt) {
    var name = $(this).val().split(" ")[0];
    return txt.replace("friend", name);
}

没有正则表达式你应该可以过得去

示例:

如果名称前可能有一些前导空格,那么首先使用它

示例:


假设您已经使用jQuery访问了
div
,则可以使用这个正则表达式获取第二个单词:

\w+\s(\w+)
大括号内的组给出第二个单词


我更喜欢使用拆分的patricks解决方案…:)

你可能想试试这个功能,如果你不确定这个词是朋友还是敌人或者其他什么,只要它是你想替换的第二个词,这个功能就行了。 只需在页面中调用此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>
Bob Marley
嘿,朋友,你好吗?
改变
函数ReplaceSecondWord(){
var stregexp=newregexp('Hey(+),你好吗?');
var strCurrentText=$(“.message”).html();
var strName=$(“.name”).html().split(“”);
strCurrentText=strCurrentText.replace(strCurrentText.match(strRegExp)[1],strName[0]);
$(“.message”).html(strCurrentText);
}

返回txt.replace(/[\w]+/,''+名称)
替换第二个单词,而不仅仅是“friend”。@jensgram-非常正确,尽管我认为这里的要点是第二个单词将是“friend”,因为这是一种通用问候语。此外,您可以在split:str.split(/\s/g)中使用正则表达式,并添加更多符号以按文本拆分。()只需将整个代码放在
文本之后。(
输入文本区域。
function (i, txt) {
    var name = $(this).val().split(" ")[0];
    return txt.replace("friend", name);
}
$('div.message').text(function(i,txt) {
    var name = $('div.name').text().split(' ')[ 0 ];
    return txt.replace( 'friend', name );
});
$('div.message').text(function(i,txt) {
    var name = $.trim($('div.name').text()).split(' ')[0];
    return txt.replace( 'friend', name );
});
\w+\s(\w+)
<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>