繁体   English   中英

JavaScript / jQuery字符串替换为正则表达式

[英]JavaScript/jQuery String Replace With Regex

假设我使用jQuery检索<textarea>的值。 然后我如何使用JavaScript / jQuery替换值的一部分。 例如:

字符串: "Hey I'm $$zach$$"

<i>Zach</i>替换$$zach$$

并保持其余的字符串完好无损?

使用正则表达式替换:

yourTextArea.value = yourTextArea.value.replace(/\$\$(.+?)\$\$/, '<i>$1</i>')

正则表达式的解释:

\$\$  two dollar signs
(     start a group to capture
.     a character
+     one or more
?     lazy capturing
)     end the group
\$\$  two more dollar signs

然后在字符串'<i>$1</i>'使用捕获组。 $1是指正则表达式捕获的组。

用这个:

str.replace(/\${2}(.*?)\${2}/g, "<I>$1</I>");
\${2} matches two $ characters
(.*?) matches your string to be wrapped
\${2} same as above
/g matches globally

的jsfiddle

如果你想在jQuery中有所作为:

$("#txt").val().replace(/\${2}(.*?)\${2}/g, "<I>$1</I>");

标记:

<textarea id="txt">I'm $$Zach$$</textarea>

的jsfiddle

将其包装在一个功能中以便最佳使用:

var italics = function (str) {
    return str.replace(/\$\$(.*?)\$\$/g, "<I>$1</I>");
}

italics($("#txt").val());

好像你想要制作类似于Markdown的语法。 为什么不在你的领域使用Markdown解析器而不是重新发明轮子呢?

Showdown JS正在积极开发中,您可以获得与任何其他markdown语法相同的Markdown语法。

使用字符串.replace方法可以。

.replace(/\$\$(.*?)\$\$/g, '<I>$1</I>')

使用此选项,更改链接和标记以扩展linkify功能:

String.prototype.linkify = function() {
    var wikipediaPattern = /<wikipedia>(.+?)<\/wikipedia>/g; 
    return this.replace(wikipediaPattern, '<a href="http://fr.wikipedia.org/wiki/$1">$1</a>');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM