我只想替换或删除字符串中字符串的第一个实例。
例如,如果给我一个字符串";说你好说再见"我希望能够替换第一个实例";比如";无论大小写,但同时保持字符串的其余部分。
我已经尝试过(其中message
是提供的字符串(:
messageWithoutTrigger = message.toLowerCase().replace(t.toLowerCase(), "").replace(/ss+/g, ' ');
当然,这是有效的,但并没有保留现有字符串的情况。然后我尝试了:
messageWithoutTrigger = messageWithoutTrigger.replace(new RegExp(t.toLowerCase(), "ig"),"")
.replace(/ss+/g, ' ').trim();
它保留了现有字符串的大小写,但删除了所有实例,而不仅仅是第一个实例。
如何从另一个字符串中删除所提供字符串的第一个实例,同时保留剩余字符串的大小写?
var original = 'sally Say hello Say Goodbye George';
function removeFirstUpperCase ( character ) {
return original.replace( new RegExp( character.toUpperCase() ), character.toLowerCase() );
}
console.log( removeFirstUpperCase( 's' ) );
console.log( removeFirstUpperCase( 'S' ) );
console.log( removeFirstUpperCase( 'g' ) );
console.log( removeFirstUpperCase( 'G' ) );
如果您想用小写版本替换第一个大写字符,那么正则表达式应该只与该字符匹配,而不是试图不敏感或全局匹配。
可能是这样的:
var mainTest = "Blah Say hello say Goodbye";
var message = "say"
var indx = mainTest.toLowerCase().indexOf(message.toLowerCase())
console.log(mainTest.substr(0,indx)+mainTest.substr(indx+message.length))