2014-05-22 5 views
2
<html> 
<head> 
     <title>Test</title> 
     <meta charset="UTF-8"> 

<script src="xregexp.js"></script> 
<script src="unicode-base.js"></script> 
<script src="unicode-scripts.js"></script> 
<script> 
var wordsToMatch = "Gr|Greek|ΕΛΛΗΝΙΚΑ"; 

var regexPattern = '\\b('+wordsToMatch+')'; 

var referenceRegex = new XRegExp(regexPattern, 'mi'); 
//var testString = "ΕΛΛΗΝΙΚΑ"; //null - ??? 
var testString = "Gr"; //Gr,Gr - OK AS IT SHOULD 
var match = referenceRegex.exec(testString); 

function myFunction() 
{ 
    alert(match); 
} 
</script> 

</head> 
<body onload="myFunction()"> 


</body> 
</html> 

제 예제는 아주 설명하기 쉽고, 영어와 잘 어울리 며, 헬라어 단어도 일치시키고 싶습니다. xregexp의 유니 코드 추가 기능에 익숙하지 않아서 패턴이 regexp와 함께 작동하도록 구현되었습니다.XRegExp를 사용하여 그리스어 전체 단어와 일치 시키십시오.

+0

나는 모든 그리스어 문자를 일치시키는 방법을 설명합니다 (http://stackoverflow.com/a/23327464/1256925) 믿습니다. 나는 당신이 거기에서 어디로 가야하는지 알고 있다고 생각합니다. – Joeytje50

답변

0
<html> 
<head> 
     <title>Test</title> 
     <meta charset="UTF-8"> 
<script> 
var wordsToMatch = "Gr|Greek|ΕΛΛΗΝΙΚΑ"; 

var regexPattern = '('+wordsToMatch+')'; 

var referenceRegex = new RegExp(regexPattern, 'mi'); 
//var testString = "ΕΛΛΗΝΙΚΑ"; //Works now fine 
var testString = "Gr"; //Gr,Gr - OK AS IT SHOULD 
var match = referenceRegex.exec(testString); 

function myFunction() 
{ 
    alert(match); 
} 
</script> 

</head> 
<body onload="myFunction()"> 


</body> 
</html> 

는 위의 잘 작동합니다. 약간의 정규 표현식 읽기와 테스트로 제 문제가 해결되었습니다. 제거 된 \ b 또한 XRegExp 필요하지 않습니다 ...

0

당신은 유니 코드 기반 외에 스크립트 부가 기능이 필요합니다

<script src="xregexp.js"></script> 
<script src="addons/unicode/unicode-base.js"></script> 
<script src="addons/unicode/unicode-scripts.js"></script> 

<script> 
    XRegExp("\\p{Greek}+").test("ΕΛΛΗΝΙΚΑ"); // true 
</script> 
+0

unicode-scripts.js를 추가했지만 여전히 예제가 작동하지 않습니다. 이 패턴은 훨씬 더 복잡한 패턴의 일부이므로 내 패턴에 따라 솔루션이 필요합니다. – user3667005

관련 문제