我正在创建用于写入波斯语文本的小型演示文本框。我正在搜索一些链接并尝试此代码但这不是输入波斯语文本只输入英文文本所以你能帮助我怎么做。还有想要验证国家身份。
这是我的html文本框:
<input type="text" id="txtn" onkeypress="text(this)">
这是我的js代码:
function text(name)
{
var name = $(name).val();
just_persian(name);
}
function just_persian(str) {
var p = /^[\u0600-\u06FF\s]+$/;
if (!p.test(str)) {
alert("not format");
}
}
在这里,我输入任何始终保持警觉的文字。
答案 0 :(得分:4)
试试这段代码:
$("#txtn").on('change keyup paste keydown', function(e) {
if(just_persian(e.key) === false)
e.preventDefault();
});
function just_persian(str) {
var p = /^[\u0600-\u06FF\s]+$/;
if (!p.test(str)) {
return false
}
return true;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="txtn">
&#13;
我希望这项工作:)
答案 1 :(得分:1)
如果您希望保留大部分代码,我建议在验证并检查keyup
事件后,在字符可用后检查名称是否为空。否则,验证失败,因为正则表达式至少需要一个字符。请注意@yashar-aliabasi有一个很好的答案,因为验证也将在粘贴和文本框上运行,触发更改事件以及防止无效字符进入文本框。
function text(name)
{
var name = $(name).val();
if (name.length > 0) {
just_persian(name);
}
}
function just_persian(str) {
var p = /^[\u0600-\u06FF\s]+$/;
if (!p.test(str)) {
alert("not format");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="txtn" onkeyup="text(this)" value="">
答案 2 :(得分:0)
尝试此代码:
document.getElementById('nameFa').addEventListener('keypress',function(e){
if ((e.charCode >= 97 && e.charCode <= 122) || (e.charCode>=65 && e.charCode<=90)){
alert("Language is english");
e.preventDefault();
}
else if(isPersian(e.key))
alert("Language is Persian");
else
alert("Others");
});
function isPersian(str){
var p = /^[\u0600-\u06FF\s]+$/;
return p.test(str);
}
还有
<input type="text" id="nameFa">