需要替换字符串中所有字符,但字符串开头(或单词的一部分)除外。
例如,从CSV文件读取的文本行:
MSFT *<E07004QY6W>
WOOLWORTHS W1157
GOOGLE*ADWS7924436927
COLES 0829
ROBLOX.COM 888-858-25
7-ELEVEN 2179
COLES EXPRESS 1896
结果应该是:
MSFT
WOOLWORTHS
GOOGLE
COLES
ROBLOX.COM
7-ELEVEN
COLES EXPRESS
JavaScript replace()正则表达式可以实现吗?
到目前为止已尝试:
'/ \ d + / g'-但它会删除所有数字而没有其他内容
'/(* | \ d + $)/'-但这在某些情况下不起作用,结果为“ ROBLOX.COM 888-858-”
最佳答案
尝试/(\s+(\S+\d+\S+)|\*\S+)/g
演示版
function replaceRegex( input )
{
return input.replace( /(\s+(\S+\d+\S+)|\*\S+)/g, "" );
}
console.log( replaceRegex( "MSFT *<E07004QY6W>" ) );
console.log( replaceRegex( "WOOLWORTHS W1157" ) ); //output is WOOLWORTHS W1157 but it matches your rules
console.log( replaceRegex( "GOOGLE*ADWS7924436927" ) );
console.log( replaceRegex( "COLES 0829" ) );
console.log( replaceRegex( "7-ELEVEN 2179" ) );
console.log( replaceRegex( "COLES EXPRESS 1896" ) );