如何通过位置编号从字符串中删除字符?

时间:2016-01-21 06:09:00

标签: javascript jquery string

我有一个这样的字符串:

var str = "this is a **test";

现在我要移除这两颗星(位置1011)。我想要这个:

var newstar = "this is a test";

同样,我想用他们的位置数删除它们。我怎么能这样做?

3 个答案:

答案 0 :(得分:6)

您也可以使用string.replace

> var str = "this is a **test";
> str.replace(/^(.{10})../, '$1')
'this is a test'

^(.{10})捕获前10个字符,后面的..匹配第11个和第12个字符。因此,通过用捕获的字符替换所有匹配的字符将为您提供预期的输出。

如果你想满足位置条件加上字符编码,那么你的正则表达式必须是,

str.replace(/^(.{10})\*\*/, '$1')

只有将它放在第11和第12位时才会取代这两颗星。

您也可以使用RegExp构造函数在正则表达式中使用变量。

var str = "this is a ***test";
var pos = 10
var num = 3
alert(str.replace(new RegExp("^(.{" + pos + "}).{" + num + "}"), '$1'))

答案 1 :(得分:0)

您可以使用.slice两次

var str = "this is a **test";
str =  str.slice(0, 10)+ str.slice(11);
str=str.slice(0, 10)+str.slice(11);

'this is a test'

答案 2 :(得分:0)

您可以使用

var str = "this is a **test";

var ref = str.replace(/\*/g, '');     //it will remove all occurrences of *

console.log(ref)   //this is a test