1

我有一串动态填充的文本。在每个字符串中,都有一个常用词:“type”。给定一个存储为变量的字符串,我想使用 javascript 找到单词“type”并在它之前放置一个潜水,然后在字符串之后放置一个关闭 div。像这样:

var string = "Here is some text that contains the word type and more text after";

我希望最终结果是这样的:

Here is some text that contains the word <div>type and more text after</div>

我该怎么办?

当前代码如下:

var wod = $("#wod a").attr("title");
    var newwod = wod.replace("Copyright 2012, GB Blanchard - Learn Spanish: www.braser.com","");
    //get ride of example and everythign after it
    var finalwod = newwod.split("Example")[0];
    var newstring = finalwod.replace(/(type.+)/,"<div>$1</div>");


   $("#wod span").append(newstring);
4

2 回答 2

4

只需使用replace

string = string.replace(/(type.+)/,"<div>$1</div>");

请注意,当您尝试修改由比单个文本节点更复杂的结构组成的 HTML 时,这不是最佳方法,但它适用于这种特定情况。

正如杰克指出的那样,您不需要在这里使用捕获组,因为整个比赛已经可以使用$&.

string = string.replace(/type.+/,"<div>$&</div>");
于 2012-11-29T23:06:47.673 回答
0

这真的是您唯一可用的方法吗?

Asad 有一个很好的正则表达式示例,但是,他也指出您的方法不是最佳实践。

为什么你不能有一些结构?

var returnedData = { "type": "div", "text": "I like best practice" };
//Might need error checking in future
var newElement = document.createElement(returnedData.type);
newElement.innerHTML = returnedData.text;
$("#wod span").append(newElement);
于 2012-11-30T09:01:23.517 回答