仅将其从Angular 2+中粘贴到文本框中时修剪特殊字符

问题描述 投票:1回答:1

而不是在文件类型为jQuery的组件文件之外使用JavaScriptts函数,而是需要在将其粘贴到文本框中后修剪或删除/限制任何特殊字符,以免在[ C0]仅组件,并将其作为抽象函数粘贴到文本框后需要反映相同的组件

仅允许使用特殊字符:

TypeScript


以下是完整的代码段,如下所示

[0 0 0 0 0 0 0 0 0> 0

HTML

hyphens(-), parenthesis(()), dot(.), underscore(_), numbers(0-9), alphabets(a-zA-Z) and space

Component.ts

🚀StackBlitz从剪贴板粘贴后,特殊字符的结果仍将保留在文本框中。但不是从<input type="text" id="bindingId" [(ngModel)]="bindingName" (keypress)="validateSpecialCharacters($event)" (paste)="onPaste($event)" onCopy="return false" onDrag="return false" onDrop="return false"/> ]中调用的public validateSpecialCharacters(e: any): boolean { try { if (/^[a-zA-Z0-9\-\_\s\(\)\.]*$/.test(e.key)) { return true; } else { e.preventDefault(); return false; } // let k; // document.all ? k = e.keyCode : k = e.which; // k = e.charCode; // k = event.keyCode; (Both can be used) // return((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32 || k === 40 || k === 41 || k === 45 || k === 46 || k === 95 || (k >= 48 && k <= 57)); } catch (e) { } } onPaste(event: ClipboardEvent) { let clipboardData = event.clipboardData; let pastedText = clipboardData.getData('text'); let trimmedText = pastedText.replace(/[^a-zA-Z0-9-()._ ]/g, ''); (<HTMLInputElement>document.getElementById('bindingId')).value = trimmedText; }

上面相同的代码应进行修改,以便每当有任何字符从剪贴板粘贴到文本框时,都应进行修改。通过保留唯一允许的特殊字符,其余的需要从文本框中删除]

在粘贴到文本框中时,如何通过仅删除/修饰特殊字符来实现此目的?这只能通过仅使用trimmedText内部内置的onPaste()jQuery功能来实现。但不在JavaScript外部,即通过TypeScript或通过TypeScript文件调用任何函数

而不是在文件类型为ts的组件文件之外使用jQuery或JavaScript函数,而是需要在将其从...粘贴到文本框中后修剪/删除/限制任何特殊字符。

<<< [

<script>

令人惊讶地通过使用
.js
找到了解决方案此方法取消了返回布尔值的默认 🚀StackBlitz方法,而不是替换event.preventDefault();
onPaste()

如果您找到上述以外的其他解决方案,欢迎您回答...

angular typescript angular7 special-characters paste
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.