我想在字符串中找到一个单词的部分出现,并在其周围添加<span>
。
更详细的说,我想找到以百分号“%”开头的所有单词(例如%mystring),并用<span>%mystring<span>
替换它们。
我在PHP中找到了一些类似的解决方案,但我不确定如何在JavaScript中解决这个问题。
答案 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>'});