如何在字符串中查找单词的部分出现并替换整个单词

时间:2016-01-28 10:06:04

标签: javascript regex

我想在字符串中找到一个单词的部分出现,并在其周围添加<span>

更详细的说,我想找到以百分号“%”开头的所有单词(例如%mystring),并用<span>%mystring<span>替换它们。

我在PHP中找到了一些类似的解决方案,但我不确定如何在JavaScript中解决这个问题。

4 个答案:

答案 0 :(得分:1)

试试这个:

str = 'go to this %link not this %link';
replacedStr = str.replace(/\s\%(.*?)(\s|$)/g, ' <span>%$1</span>$2');

答案 1 :(得分:0)

您可以使用replace方法;

'This is %mystring. What is %yourstring?'.replace(/%mystring/g, '"%mystring')
// returns This is "%mystring. What is %yourstring?
编辑:我更新了我的完整答案(Vegeta的回答看起来解决了你的问题):

var mystring = '%this is my string. what is your string?'
mystring.replace(/\%(\w+)/g, '\"%$1')

答案 2 :(得分:0)

如果没有使用正则表达式的授权:),请尝试

var text = "sadfg dfgikwer sfd dfg3 dfg4 sdfsdfb";
text = text.split( " " ).map( function(value){ if ( value.indexOf( "dfg" ) != 0 ){ return value }else { return "new" } } ).join( " " );
alert(text);

这会替换以dfg开头的单词new

使这成为一种方法

function replaceOldWithNew( text, oldStr, newStr )
{
  return text = text.split( " " ).map( function(value){ if ( value.indexOf( oldStr ) != 0 ){ return value }else { return newStr } } ).join( " " );
}

 replaceOldWithNew( "sadfg dfgikwer sfd dfg3 dfg4 sdfsdfb", "dfg", "new" )

答案 3 :(得分:0)

请尝试下一个代码:

var str = "my str is %something %somethingElse";
var newStr = str.replace(/%(\S+)/g, function(match, p1) {return '<a>' + p1 + '</a>'});