Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.02.2013, 18:50
Новичок на форуме
Отправить личное сообщение для brkltl Посмотреть профиль Найти все сообщения от brkltl
 
Регистрация: 21.02.2013
Сообщений: 1

Как сделать валидацию юникод символов?
Всем привет!

Есть движок для проверки орфографии на www.phpspellcheck.com.

По умолчанию, проверяет только латинские символы - без проверки слов на юникоде переходит на латинские:


Как я понял, за валидацию отвечает файл include.js. Файл большой, привожу часть:
if(livespell.str.toCaps(word)===word){return 1;}
return 0;},stripSpans:function(strinput){if(!strinput){return""}
strinput=strinput.replace((/(\<\/span[^>]*\>)/gi),"");return strinput.replace((/(\<span[^>]*\>)/gi),"");},stripAnchors:function(strinput){if(!strinput){return""}
strinput=strinput.replace((/(\<\/a[^>]*\>)/gi),"");return strinput.replace((/(\<a[^>]*\>)/gi),"");},stripDirty:function(strinput){if(!strinput){return""}
strinput=strinput.replace((/(\<\/h[^>]*\>)/gi),"");strinput=strinput.replace((/(\<h[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/form[^>]*\>)/gi),"");strinput=strinput.replace((/(\<form[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/div[^>]*\>)/gi),"");strinput=strinput.replace((/(\<div[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/t[^>]*\>)/gi),"");strinput=strinput.replace((/(\<t[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/img[^>]*\>)/gi),"");return strinput.replace((/(\<img[^>]*\>)/gi),"");},stripNonSpaceTags:function(strinput,oinput){if(!strinput){return""}
if(strinput.indexOf('o:p')>-1||strinput.indexOf('<!--')>-1||strinput.indexOf('<![')>-1||strinput.indexOf('mso-style')>-1){strinput=livespell.str.convertToText(oinput)
strinput=livespell.str.stripComments(strinput)
if(livespell.test.IE()){strinput=strinput.replace(/\r/gi,"<br />")
strinput=strinput.replace(/\n/gi,"<br />")}}
if(strinput.indexOf('<!--')>-1||strinput.indexOf('<![')>-1){strinput=livespell.str.stripComments(strinput)}
if(strinput.indexOf('<?')>-1||strinput.indexOf('!xml')>-1||strinput.indexOf('xml')>-1){strinput=strinput.replace((/(\<\?[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/\?[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\?xml[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/\?[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\!xml[^>]*\>)/gi),"");}
if(strinput.indexOf('html')>-1){strinput=strinput.replace((/(\<html[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/html[^>]*\>)/gi),"");}
strinput=strinput.replace((/(\<\/b[^>]*\>)/gi),"");strinput=strinput.replace((/(\<a[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/a[^>]*\>)/gi),"");strinput=strinput.replace((/(\<s[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/s[^>]*\>)/gi),"");strinput=strinput.replace((/(\<span[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/span[^>]*\>)/gi),"");strinput=strinput.replace((/(\<p[^>]*\>)/gi),"<p>");strinput=strinput.replace((/(\<div[^>]*\>)/gi),"<div>");return strinput;},convertToText:function(me){if(me.textContent){me.textContent=me.textContent;}else if(me.innerText){me.innerText=me.innerText;}
return me.innerHTML;},stripTags:function(strinput){if(!strinput){return""}
strinput=livespell.str.stripComments(strinput)
return strinput.replace((/(<[\/]?[a-z][^>]*>)/gi),"");},stripComments:function(strinput){if(!strinput){return""}
strinput=strinput.replace((/<!--[\s\S.\n]*?-->/g),"");strinput=strinput.replace((/&lt;!--[\s\S.\n]*?--&gt;/g),"");return strinput;},HTMLEnc:function(s){if(s==undefined){return""}
s=(s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'));s=s.replace(/\n/g,"<br />");s=s.replace(/[ ][ ]/gi," &nbsp;");s=s.replace(/[ ][ ]/gi," &nbsp;");return s;},HTMLEncSimple:function(s){s=(s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'));return s;},HTMLEncSafeWhite:function(s){s=(s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'));s=s.replace(/\n/g,"<br />");s=s.replace(/[ ][ ]/gi," &nbsp;");s=s.replace(/[ ][ ]/gi," &nbsp;");return s;},HTMLDec:function(s){s=s=s.replace(/\&nbsp\;/gi," ");s=(s.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>'));return s;},HTMLDecAndStripFormatting:function(s){if(!livespell.test.IE()){s=s.replace((/\r/gi),"<BR>");}
s=s.replace((/<br[ ]*[\/]?>$/i),"");s=s.replace(/<div><br><\/div>/gi,"<BR>")
s=s.replace(/<div>/gi,"<BR>")
s=s.replace((/<\/p>/gi),"<BR>");s=s.replace((/<\/p>/gi),"<BR>");s=s.replace((/<br[ ]*[\/]?>$/i),"");s=s.replace((/<br[ ]*[\/]?>/gi),"\n");s=s.replace((/\x0A\x0D\x0A/gi),"\n");s=this.stripTags(s);s=s.replace(/\&nbsp;/gi," ");s=(s.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>'));return s;},spliceXHTML:function(str,pos,add){var arrStr=str.split('');var inHTML=false;var out="";var j=0;for(var i=0;i<arrStr.length;i++){var ch8r=arrStr[i];if(ch8r=="<"){inHTML=true}
out+=ch8r;if(j==pos&&!inHTML){out+=add}
if(!inHTML){j++;}
if(ch8r==">"&&inHTML){inHTML=false;}}
return out;},spliceSpans:function(str,pos,add){if(str+""==""){return""}
var arrStr=str.split('');var inHTML=false;var out="";var j=0;for(var i=0;i<arrStr.length;i++){var ch8r=arrStr[i];try{if(i<arrStr.length-5&&ch8r=="<"&&((arrStr[i+1].toLowerCase()=="s"&&arrStr[i+2].toLowerCase()=="p"&&arrStr[i+3].toLowerCase()=="a"&&arrStr[i+4].toLowerCase()=="n")||(arrStr[i+1].toLowerCase()=="/"&&arrStr[i+2].toLowerCase()=="s"&&arrStr[i+3].toLowerCase()=="p"&&arrStr[i+4].toLowerCase()=="a"&&arrStr[i+5].toLowerCase()=="n"))){inHTML=true}}catch(e){}
out+=ch8r;if(j==pos&&!inHTML){out+=add}
if(!inHTML){j++;}
if(ch8r==">"&&inHTML){inHTML=false;}}
return out;},toCase:function($$str,$$C,$$bcapitalize){switch($$C){case 2:$$str=$$str.toUpperCase();break;case 1:$$str=$$str.substr(0,1).toUpperCase()+$$str.substr(1);break;}
if($$bcapitalize){$$str=$$str.substr(0,1).toUpperCase()+$$str.substr(1);}
return $$str;},tokenize:function(strdoc){var pattern=(/((\&lt\;[\/\?]?[a-zA-Z][^\&]*\&gt;)|(\<[\/\?]?[a-z][^\>]*\>)|(\&lt\;[\/\?]?[a-z][.]*\&gt;)|(\&amp\;[a-zA-Z0-9]{1,6}\;)|(\&[a-zA-Z0-9]{1,6}\;)|([a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})|(<[\/\?]?\w+[^>]*>)|([a-zA-Z]{2,5}:\/\/[^\s]*)|(www\.[^\s]+[\.][a-zA-Z-]{2,4})|([^\s\<\>]+[\.][a-zA-Z-]{2,4}[\s\n])|([\wҐнл\x81-\xFF]{2,}[\w'`Ґнл\x81-\xFF]*[\wҐнл\x81-\xFF])|([\w]+))/gi);var arrdocobj=strdoc.replace(pattern,this.chr(1)+"$1"+this.chr(1)).replace(/\x01\x01/g,this.chr(1)).split(this.chr(1));var arrdoc=[];for(var i=0;i<arrdocobj.length;i++){arrdoc[i]=arrdocobj[i];}
if(arrdoc[0]===""){arrdoc.shift();}
if(arrdoc[arrdoc.length-1]===""){arrdoc.pop();}
return arrdoc;},chr:function(AsciiNum){return String.fromCharCode(AsciiNum);},toCaps:function(str){return str.substr(0,1).toUpperCase()+str.substr(1);},rtrim:function(s){return s.replace(/\s*$$/,"");},base64decode:function(input){var _keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=_keyStr.indexOf(input.charAt(i++));enc2=_keyStr.indexOf(input.charAt(i++));enc3=_keyStr.indexOf(input.charAt(i++));enc4=_keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=this.utf8_decode(output);return output;},utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}


В javascript я не разбираюсь.

Подскажите, пожалуйста, как можно реализовать проверку юникод символов (а не только кириллицы) или убрать валидацию, чтобы подчеркивались слова и с юникод символами. Следовательно, можно проверять текст после добавления своего словаря.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как лучше сделать виджет? comentator Элементы интерфейса 0 25.03.2011 08:44
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Многостраничная галерея на lightbox.js Как сделать? MASTER Общие вопросы Javascript 9 24.07.2009 14:38