【问题标题】:XRegExp to match Greek whole wordsXRegExp 匹配希腊语整个单词
【发布时间】:2014-05-25 17:14:55
【问题描述】:
<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 的 unicode 插件,我的模式是为了与 regexp 一起工作而实现的。

【问题讨论】:

  • 我相信this answer 解释了如何匹配所有希腊字符。我想你知道从那里去哪里。

标签: javascript unicode xregexp


【解决方案1】:

除了 unicode 库之外,您还需要脚本插件:

<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>

【讨论】:

  • 我添加了 unicode-scripts.js 但我的示例仍然无法正常工作。我需要根据我的模式的解决方案,因为这是一个更复杂的模式的一部分。
【解决方案2】:
<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...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    相关资源
    最近更新 更多