Javascript 如何在字符串中查找单词的部分匹配项并替换整个单词

Javascript 如何在字符串中查找单词的部分匹配项并替换整个单词,javascript,regex,Javascript,Regex,我想找到字符串中某个单词的部分匹配项,并在其周围附加一个 更详细地说,我希望找到所有以百分号“%”开头的单词(例如%mystring),并将它们替换为%mystring 我在PHP中找到了一些类似的解决方案,但我不确定如何在JavaScript中实现这一点。您可以使用替换方法 'This is %mystring. What is %yourstring?'.replace(/%mystring/g, '"%mystring') // returns This is "%mystring. Wh

我想找到字符串中某个单词的部分匹配项,并在其周围附加一个

更详细地说,我希望找到所有以百分号“%”开头的单词(例如%mystring),并将它们替换为
%mystring


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

您可以使用
替换
方法

'This is %mystring. What is %yourstring?'.replace(/%mystring/g, '"%mystring')
// returns This is "%mystring. What is %yourstring?
编辑:为了完整性,我更新了我的答案(贝吉塔的答案似乎解决了你的问题):

试试这个:

str = 'go to this %link not this %link';
replacedStr = str.replace(/\s\%(.*?)(\s|$)/g, ' <span>%$1</span>$2');
str='转到此%link而不是此%link';
replacedStr=str.replace(/\s\%(.*)(\s |$)/g,“%$1$2”);

如果没有使用regex:)的授权,请尝试

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" )

请尝试下一个代码:

var str = "my str is %something %somethingElse";
var newStr = str.replace(/%(\S+)/g, function(match, p1) {return '<a>' + p1 + '</a>'});
var str=“我的str是%something%somethingElse”;
var newStr=str.replace(/%(\S+)/g,函数(匹配,p1){return'+p1+'});

是的,但我不知道mystring的内容,我只知道它是以%:)开头的,它在一定程度上起作用。例如,我可以在我的字符串之前添加,但如何也添加到字符串的末尾?无法理解您的要求?请举例说明?我有以下字符串:%somestring-somestring可以是任何值,但我不知道,唯一固定的信息是%符号。我想让%SomeStringUnderstand。。我会尝试的。请展示你已经尝试过的,而不仅仅是说你发现了一些在JS中无法使用的PHP代码。否则,问题就离题了。谢谢这也很酷,但贝吉塔首先回答:)谢谢@阿莱默一点也不担心。
var str = "my str is %something %somethingElse";
var newStr = str.replace(/%(\S+)/g, function(match, p1) {return '<a>' + p1 + '</a>'});