nodejs 暗号ライブラリを使用して機密データを正常に復号化しました。
問題は、復号化されたデータの末尾に非 ASCII 文字があることです。
どうすればそれをトリミングできますか?
以下の現在のトリム関数は機能しません。
String.prototype.fulltrim = function () {
return this.replace( /(?:(?:^|\n)\s+|\s+(?:$|\n))/g, '' ).replace( /\s+/g, ' ' );
};
nodejs 暗号ライブラリを使用して機密データを正常に復号化しました。
問題は、復号化されたデータの末尾に非 ASCII 文字があることです。
どうすればそれをトリミングできますか?
以下の現在のトリム関数は機能しません。
String.prototype.fulltrim = function () {
return this.replace( /(?:(?:^|\n)\s+|\s+(?:$|\n))/g, '' ).replace( /\s+/g, ' ' );
};
以下で十分だと思います。
str.replace(/[^A-Za-z 0-9 \.,\?""!@#\$%\^&\*\(\)-_=\+;:<>\/\\\|\}\{\[\]`~]*/g, '') ;
この回答に基づいて、次を使用できます。
String.prototype.fulltrim = function () {
return this.replace( /([^\x00-\xFF]|\s)*$/g, '' );
};
これにより、文字列の末尾にあるすべてのスペースと非 ASCII 文字が削除されますが、途中には残ります。次に例を示します。
"Abcde ffאggg ג ב".fulltrim();
// "Abcde ffאggg";