如何替换除第一个字符外的多个字符
How to replace multiple characters except the first?
我已经查过这个问题,但我对编码很陌生,所以我不太能将其他答案与之联系起来。
给定字符串s,返回一个字符串
其中其第一个字符的所有出现都具有已更改为"*",但不要更改
第一个字符本身。例如,"胡言乱语"产生"ba**le"假设字符串的长度为1或更大。提示:s.replace(stra,strb)返回字符串s的一个版本其中stra的所有实例都已被strb替换。
这就是我所拥有的,但这并没有取代除第一个字符之外的每个字符,它只是取代了下一个字符。
function fixStart(s)
{
var c = s.charAt(0);
return c + s.slice(1).replace(c, '*');
}
function fixStart(s) {
var c = s.charAt(0);
var outputStr = '';
// literate through the entire string pushing letters into a new string unless it is the first letter
for (var i = 0; i < s.length; i++) {
// if the letter is the first letter AND we are not checking the first letter
if (s[i] === c && i !== 0) outputStr += '*'
else outputStr += s[i]
}
return outputStr;
}
console.log(fixStart('hellohahaha'))
要替换所有出现的事件,而不仅仅是第一次,可以使用RegExp
:
function fixStart(s) {
var c = s.charAt(0);
return c + s.slice(1).replace(new RegExp(c, 'g'), '*');
}
例如,如果c
的值为"b",则new RegExp(c, 'g')
等效于/b/g
。
这将适用于简单的字符串,如您的示例中的"牙牙学语"。如果字符串可能以regex中的特殊符号开头,例如".",正如@Oriol在一条评论中指出的那样,那么你就需要逃离它。看看另一个答案是怎么做的。
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Regex-从字符第N次出现到字符串末尾的匹配
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- 在跨度中每3个字符添加一个空格
- 如何在JavaScript中每隔第n个字符分割一个字符串
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 删除最后一个无效字符,而不是第一个(javascript验证)
- 获得第一个n个文本字符的网页与他们的风格等