我对RegEx有所了解,但这对我来说有点复杂。我需要更改的是它也允许一个连字符。
replace(/[^\p{L}\s]+/gu, '')
您可以使用
.replace(/^([^-]*-)|-/g, '$1').replace(/[^\p{L}\s-]+/gu, '')
它将保留输入字符串中的第一个-
以及所有Unicode字母(\p{L}
)和空格(\s
)。
请参见下面的ECMAScript 2018+ JS演示:
console.log( "12-3-**(Виктор Викторович)**...".replace(/^([^-]*-)|-/g, '$1').replace(/[^\p{L}\s-]+/gu, '') )