English 中文(简体)
Javascript - 如何替换子字符串?
原标题:
  • 时间:2008-10-31 09:06:24
  •  标签:

这是一个简单的任务。我想在客户端使用JavaScript将一个子字符串替换为另一个子字符串。

原始字符串是 原始只读

我想用读取写入代替只读

有什么快速的回答吗?如果可能的话,请提供一个JavaScript代码片段...

最佳回答

String.replace()是基于正则表达式的;如果您将字符串作为第一个参数传递,则从中制作的正则表达式将不包括“g”(全局)标志。如果您想要替换搜索字符串的所有出现(通常是您想要的),则此选项是必需的。

一个非正则表达式的简单全局字符串替换的替代方法是:

function string_replace(haystack, find, sub) {
    return haystack.split(find).join(sub);
}

这是首选的,当find字符串可能包含在正则表达式中具有不良特殊含义的字符时。

无论哪种方法,对于问题中的例子来说都可以。

问题回答

好的概述。它基于正则表达式,如果您使用正则表达式记法,您可以指定i和g修饰符(不区分大小写(i),它将匹配所有情况和全局(g),它将替换所有出现),如果您使用字符串记法,它将转换为正则表达式,您将无法指定任何修饰符。

<script type="text/javascript">

var str1="Visit Microsoft!";
var str2 = str1.replace(/microsoft/i, "W3Schools"); //Will work, per the i modifier 

var str3 = "original READ ONLY";
var str4 = str3.replace("ONLY", "WRITE"); //Will also work

</script>
stringObject.replace(findstring,newstring)

我更喜欢正则表达式的方法。

newstring = oldstring.replace(/要替换的字符串的正则表达式/, 新字符串);

值得考虑的是 g 和 i 正则修饰符,它们可以进行全局替换(即替换所有出现的字符)并且忽略大小写。

例如:

<script type="text/javascript">

var str = "this is a String";

document.write(str.replace(/s/g, "_"));

would print: this_is_a_string

document.write(str.replace(/s/gi, "f"));

would print "thif if a ftring"

</script>




相关问题
热门标签