任何現有的JavaScript框架都有一個非正則表達式replace()
函數,或者它已經作爲一次性函數在web上發佈了嗎?JavaScript非正則表達式替換
例如,我想替換"@!#$123=%"
,我不想擔心要轉義哪些字符。大多數語言似乎都有替代方法。我希望看到這個簡單的事情增加。
任何現有的JavaScript框架都有一個非正則表達式replace()
函數,或者它已經作爲一次性函數在web上發佈了嗎?JavaScript非正則表達式替換
例如,我想替換"@!#$123=%"
,我不想擔心要轉義哪些字符。大多數語言似乎都有替代方法。我希望看到這個簡單的事情增加。
我可能會誤解你的問題,但JavaScript並有一個replace()
var string = '@!#$123=%';
var newstring = string.replace('@!#$123=%', 'hi');
編輯:(見註釋)第五版似乎確實有它的這個信息,雖然它不顯示當我link directly它。這裏是相關部分:
replace()方法執行搜索和替換操作。它將正則表達式作爲其第一個參數,並將替換字符串作爲其第二個參數。它搜索它被調用的字符串與指定的模式匹配。如果正則表達式設置了g標誌,則replace()方法會用替換字符串替換該字符串中的所有匹配項;否則,它只會替換它找到的第一個匹配項。 如果replace()的第一個參數是一個字符串而不是正則表達式,那麼該方法會逐字地搜索該字符串,而不是像search()那樣使用RegExp()構造函數將其轉換爲正則表達式。
我有完全相同的問題,搜索非正則表達式JavaScript字符串替換()方法。我的解決方案是使用分裂(組合)和join():
"some text containing regex interpreted characters: $1.00".split("$").join("£");
這給:
「一些含正則表達式的文本解釋的字符:£1.00」
比較與替換():
"some text containing regex interpreted characters: $1.00".replace(new RegExp("$"),"£")
這奇怪給:
「一些含正則表達式的文本解釋的字符:$ 1.00£」
試試這個:
function replaceAllTemp(str,find, replace) {
var ignoreCase=true;
var _token;
var token=find;
var newToken=replace;
var i = -1;
if (typeof token === "string") {
if (ignoreCase) {
_token = token.toLowerCase();
while((
i = str.toLowerCase().indexOf(
token, i >= 0 ? i + newToken.length : 0
)) !== -1
) {
str = str.substring(0, i) +
newToken +
str.substring(i + token.length);
}
} else {
return this.split(token).join(newToken);
}
}
return str;
};
呵呵。也許我在看一個只顯示正則表達式例子的舊版本的「Javascript:The權威指南」。所以我從來沒有嘗試過上面的代碼。現在我覺得很愚蠢。 -10個冷點對我來說。 – BuddyJoe 2008-11-14 00:43:40
它發生,我剛剛找到了lastIndexOf()方法... *嘆* * – Owen 2008-11-14 00:45:54