我有一个JavaScript字符串,我正在写入一个文件。我需要用替换字符替换任何不匹配的代理对。是否有一些regex字符类,只匹配未配对的代理,或者我必须做一些额外的处理?
String.prototype.toWellFormed()
用Unicode替换字符U+FFFD�
替换任何单独的代理。
function toWellFormed(s) {
return s.replace(/p{Surrogate}/gu, 'uFFFD')
}
toWellFormed('foo 𝌆') // 'foo 𝌆'
toWellFormed('foo uD834uDF06') // 'foo 𝌆'
toWellFormed('foo uD834') // 'foo �'
toWellFormed('foo uDF06uDF06uDF06') // 'foo ���'