我有一个这样的字符串:
var str = "this is a **test";
现在我要移除这两颗星(位置10
和11
)。我想要这个:
var newstar = "this is a test";
同样,我想用他们的位置数删除它们。我怎么能这样做?
答案 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