假設我使用jQuery檢索<textarea>
的值。那我該如何用JavaScript/jQuery替換一部分值呢?例如:JavaScript/jQuery字符串替換爲正則表達式
字符串:"Hey I'm $$zach$$"
與<i>Zach</i>
更換$$zach$$
,仍然保持了字符串的其餘部分完好?
假設我使用jQuery檢索<textarea>
的值。那我該如何用JavaScript/jQuery替換一部分值呢?例如: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
指的是正則表達式捕獲的組。
使用字符串.replace
方法就可以了。
.replace(/\$\$(.*?)\$\$/g, '<I>$1</I>')
-1沒有鏈接到jQuery的正則表達式參考 – 2014-01-13 21:00:49
使用此:
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
如果你想在jQuery的東西:
$("#txt").val().replace(/\${2}(.*?)\${2}/g, "<I>$1</I>");
標記:
<textarea id="txt">I'm $$Zach$$</textarea>
把它包在功能最佳用途:
var italics = function (str) {
return str.replace(/\$\$(.*?)\$\$/g, "<I>$1</I>");
}
italics($("#txt").val());
好像你想類似於降價語法。爲什麼不爲你的領域使用Markdown解析器而不是重新發明輪子?
Showdown JS正在積極開發之中,您將獲得與任何其他markdown語法相同的Markdown語法。
使用此,變更鏈接和標籤的擴展功能linkify:
String.prototype.linkify = function() {
var wikipediaPattern = /<wikipedia>(.+?)<\/wikipedia>/g;
return this.replace(wikipediaPattern, '<a href="http://fr.wikipedia.org/wiki/$1">$1</a>');
}
我看到你已經使用''<等在你的榜樣。你想用'<或'<'? – timss 2013-04-22 00:10:08