首先,我不知道很多关于正则表达式,需要购买一本书,因为它已被证明我是难以回升。
最后,我想利用DOM元素,并更换直括号内的文字“[”和“]”,并插入周围的文本的链接,并可能有多个支架套的字符串中。
function changeTip() {
var link = '<a href="' + $('#txtURL').attr('value') + '" target="_blank">';
$('.tipoftheweektip').html($('#txtTip').attr("value").replace('[', link).replace(']', '</a>'));
}
这工作情况除外:
- 在第二组括号不工作
- 如果心不是一个封闭直括号,它将删除打开直括号之前的所有文字
我已经看了例子,因为直括号在正则表达式的代码中使用,我找不出如何寻找一个支架和更换。
任何人在那里已经做过类似的东西,他们可以分享? 提前致谢。
.replace(/\[([^\]]*)\]/g, link + "$1</a>")
这意味着,找到之间[和]的文字和与链接的值,文本和“”代替它。 这确保匹配方括号中。 中的“g”表示“多次做(全局)”。
通过整个字符串这将循环,并与您所选择的词或词组替换另一个。 (有点复杂,但它的工作原理,是非常可重复使用)
VAR字符串=“这是一些测试文本。您可以将此文本中替换任何词/短语的所有实例”
VAR新的字符串= string.findAndReplace( “文字”, “BOO!”);
Object.prototype.findAndReplace = function( searchText, replace ) {
var matchCount = 0;
var text = this;
for( var i = 0; i<text.length; i++ ) {
var textSearched = "";
for(var x = 0; x<searchText.length; x++) {
var currentText = text[i+x];
if( currentText != undefined ) {
textSearched += currentText;
}
}
if( textSearched == searchText ) {
matchCount++;
}
console.log( textSearched );
}
for(var i=0; i<matchCount; i++) {
text = text.replace( searchText, replace );
}
return text;
}
文章来源: Replace all instances of a pattern with regular expressions in Javascript / jQuery