2014-09-25 6 views
-5

Я использовал следующий код для проверки правильности URL-адреса, который отлично работает на английском языке, но он не работает на китайском языке.Проверка Javascript для китайского языка

Просьба предоставить решение для китайского языка

function Validation() { 
     var errorflag = false;   
     var allow_char = /^[0-9a-zA-Z\s\-\_]+$/;    
     var pagename = document.frm.page_name.value; 

     if (pagename.search(allow_char) == -1) { 
      document.getElementById("pageNameError").innerHTML = "Invalid URL"; 
      if(errorflag == false) { 
       document.frm.page_name.focus(); // Set focus on form element. 
      } 
      errorflag = true; 
     } else { 
      document.getElementById("pageNameError").innerHTML = ""; 
     } 
     if (errorflag == true) { 
      return false; 
     } 
     return true;  
    } 

Спасибо за вашу помощь.

+1

Почему * * * он работает? 'allow_char' кажется очень ориентированным на английский язык; он даже не будет работать с этими смешными немецкими персонажами! Начните с исправления, сначала, ищите Unicode и как он взаимодействует с (JS) регулярными выражениями. – user2864740

+0

Да, но я не знаю, как исправить язык chinense –

+0

Ну, что означает [A-Z] в регулярном выражении? – user2864740

ответ

2

Вам необходимо исправить ваше регулярное выражение allow_char. Добавьте диапазоны символов в соответствии с ответами here:

var allow_char = /^[\u4E00-\u9FFF\u3400-\u4DFF]+$/; 

одно решение. (Я оставлю астральные диапазоны в качестве упражнения для читателя: p - если вам это нужно, прочитайте об обработке JavaScript в UCS-2/UTF-16)

+0

Ваш код не работает над китайским языком –

+0

Он работает здесь. И если он не работает для вас, вы должны сообщить о том, в каком конкретном случае он не работает; Я тестировал «我 的 爸爸». У вас могут быть цифры или буквенно-цифровые символы или что-то еще, что не включено в мой пример. Какой пример; вы должны настроить его для себя. – Amadan

+0

pagename.search (allow_char) return 0 everytime for chinese lanuage –