Javascript检查输入是否为英语或阿拉伯语

时间:2018-07-04 09:58:05

标签: javascript html

我正在尝试制作一个可以接受英语和阿拉伯语输入的HTML页面(这只是一种形式)。 例如: 名和姓:(必须为英文) 阿拉伯语全名:(必须是阿拉伯语) 我尝试使用以下代码进行玩耍:

function isArabic(text) {
var pattern = /[\u0600-\u06FF\u0750-\u077F]/;
result = pattern.test(text);
return result;
}

但是我对JavaScript没有经验,并且很难使它工作并在html中正确链接

这是HTML的示例:

 <form name="taskForm" action="/action_page.php" onsubmit="return validateForm()" method="post">
    <b>First Name: </b>
    <br>
    <input type="text" name="firstName" max="15" required>
    <br><br>
    <b>Last name: </b>
    <br>
    <input type="text" name="lastName" max="15" required>
    <br><br>
    <b>Name in Arabic: </b>
    <br>
    <input type="text" name="arName" max="100"> 
    <br><br>
    <b>Gender: </b>
    <br><input type="radio" name="Gender" value="male" required>  Male
    <input type="radio" name="Gender" value="female" required>  Female
    <br><br>
    <b>Salary: </b>
    <br>
    <input type="number" name="salary" step="0.001" min="0">
    <br><br>
</form>

3 个答案:

答案 0 :(得分:3)

输入具有pattern属性,您可以在其中放置正则表达式。不需要JS。

<input type="text" name="arName" pattern="[\u0600-\u06FF\u0750-\u077F]">

答案 1 :(得分:0)

尝试一下:-

var string = 'عربية‎';

alert(isArabic(string));


function isArabic(text) {
var arabic = /[\u0600-\u06FF]/;
result = arabic.test(text);
return result;
}

答案 2 :(得分:0)

这是我最终用来使其工作的代码! 所有积分均归于:https://stackoverflow.com/cv/leniel和他的文章:https://www.leniel.net/2012/10/javascript-regex-jquery-to-match-only-english-characters-in-input-textbox.html

我能够使用他的代码,该代码只使用英语,而只是将Unicode值更改为阿拉伯字母的值:

$("#arabicCheck").on("keypress", function (event) {
 var arabicAlphabetDigits = /[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]|[\u0200]|[\u00A0]/g;

/* Retrieving the key from the char code passed in event.which
 For more info on even.which, look here: http://stackoverflow.com/q/3050984/114029
var key = String.fromCharCode(event.which); */

if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || arabicAlphabetDigits.test(key)) {
  return true;
}
  return false;
});

$('#arabicCheck').on("paste", function (e) {
e.preventDefault();
});
</script>

这是HTML部分中的样子:

<b>Name in Arabic: </b><br>
   <input id="arabicCheck" type="text" name="arName" max="100" >
   <br><br>