Javascript - 替换字符串中的一定数量的字符,剩下的就剩下了

时间:2014-11-05 23:02:35

标签: javascript base64

这是一个奇怪的问题。

基本上,我认为让用户输入字符串,将该字符串转换为base64并创建图像是一个很酷的主意。

虽然我没有在base64中学习,但我知道图像有标题数据,需要一定的长度。我设法分离了告诉图像颜色的base64数据。现在,我有一个基本的白色图像 - you can check a js fiddle here -(不确定它是否在那里工作,但它在浏览器中有效)。

无论如何,变量“imgdata”是我的PNG图像的原始数据,这就是我想要改变的。不幸的是,该字符串似乎需要一定数量的字符,否则图像将无法工作(猜测它是标题中指定的大小?)

因为用户输入的字符串在转换为base64时不太可能总是达到相同数量的字符,所以我想知道如何替换字符串的第一部分,剩下的就不管用了。

TL; DR

我有这个字符串 -

aaa

我想替换这个字符串 -

123456

由于string1只有3个字符,我只希望它替换string2的前3个字符 所以结果看起来像

aaa456

请记住string1的长度会有所不同。

2 个答案:

答案 0 :(得分:1)

创建包含默认值的String

var fullLength = "abcdefg";

将用户输入作为另一个字符串:

var user = "aaa";

创建第三个字符串,它是用户数据和默认结束的组合:

var combined = user + fullLength.substring(user.length);

因为JavaScript是一种弱类型语言,所以您需要确保使用String对象。您可以通过连接一个空字符串来完成此操作,这将确保所有字符串函数都能正常工作:

var userString = userInput + "";

此外,还有三个非常相似的字符串函数slice()substr()substring()。对MDN进行一些研究,看看哪种方法最适合你。

答案 1 :(得分:0)

Javascript slice方法可以单独使用来解决问题。 slice的第一个参数定义要抓取的第一个字符位置。第二个参数(停止位置)可以省略,这意味着你将得到其余的字符串。通过使用a作为第一个参数的长度意味着它将跳过与a的长度一样多的字符,然后用b的其余内容填充:

a + b.slice(a.length) // 'aaa456'