【发布时间】:2020-12-29 11:19:28
【问题描述】:
这是我的 textareainput 代码,它只接受字符而不是数字。
var harfInput1 = document.getElementById('graduated_university_country');
harfInput1.addEventListener("keyup",function(){
if (harfInput1.value.match(/[^a-zA-Z' ']/g)){
harfInput1.value = this.value.replace(/[^a-zA-Z]/g,'');
}
})
问题是我不能接受这样的土耳其字符。我尝试在下面添加代码,但没有成功。
var harfInput1 = document.getElementById('graduated_university_country');
harfInput1.addEventListener("keyup",function(){
if (harfInput1.value.match(/[^a-zA-Z' '][^\wığüşöçĞÜŞÖÇİ]/g)){
harfInput1.value = this.value.replace(/[^a-zA-Z][^\wığüşöçĞÜŞÖÇİ]/g,'');
}
})
有什么建议吗?
【问题讨论】:
-
这个Regular Expressions 可能会有所帮助。
-
您修改后的代码使用两个字符类,需要两个字符,每个字符一个,并排。你想要一个单一的字符类:
/[^a-zA-Z' '\wığüşöçĞÜŞÖÇİ]/g还要注意\w包括a-zA-Z,因此该部分变得多余,第二个'也是如此。您可能还需要i标志,而您不需要或不需要g标志:/[^' \wığüşöçĞÜŞÖÇİ]/i。另外:当你只是想知道某事是否匹配并且你不使用匹配的结果时,使用test方法而不是match:/[^' \wığüşöçĞÜŞÖÇİ]/i.test(harfInput1.value) -
这非常适合土耳其字符,但它也允许我输入数字我会再试一次我是 js 的初学者谢谢你的帮助:)
标签: javascript inout