1
我有改變所選元素的HTML的函數..正則表達式關鍵字轉義
$('p').fill('John'); // "John"
..that替換$value
與當前HTML ..
$('p').fill('Hi $value.') // "Hi John."
..too常。
// Should be "The keyword is $value."
$('p').fill('The keyword is \$value.'); // "The keyword is \Hi John.."
我目前用它來解析值..
value.replace(/\$value/gi, item.innerHTML);
..和我想出了一個解決辦法是..
value.replace(/[^\\]\$value/gi, '$1' + item.innerHTML);
..但在某些情況下,它不起作用。
// Ends up with "$value John."
$('p').fill('Hi') // Yes, it supports stacking.
.fill('$value John.'); // Should be "Hi John."
我也試過..
value.replace(/[^\\]?\$value/gi, '$1' + item.innerHTML);
..但具有多個問題。
- 如果非反斜槓字符不匹配,那麼
$1
不會被替換,並且我被隨機插入的卡住了。 - 如果它是可選的,那裏可能還有一個反斜槓,然後我們會遇到一個隨機的反斜槓,並與
$1
。
如何解決這個問題的任何想法?
我的問題是如何跳過'$ value',如果它之前有一個反斜槓。 – Kayla 2011-05-25 03:05:50
@tyler如果有前面的反斜槓,你是否希望它被返回? – alex 2011-05-25 03:07:12
不需要。我希望'$ value'變成HTML,'\ $ value'變成'$ value'。 – Kayla 2011-05-25 03:29:36