我的带有Devanagari单词的HTML代码
<html>
<head>
<title>TODO</title>
<meta charset="UTF-8">
</head>
<body>
मंत्री मुख्यमंत्री
</body>
<script src="jquery-1.11.0.min.js"></script>
<script src="xregexp_20.js"></script>
<script src="addons/unicode/unicode-base.js"></script>
<script src="addons/unicode/unicode-scripts.js"></script>
<script src="my.js"></script>
</html>我的javascript代码
var html = document.getElementsByTagName("html")[0];
var fullpage_content = html.innerHTML;
var regex = RegExp("मंत्री", "g");
var count = fullpage_content.match(regex);
console.log("count in page : " + count+ ", " + count.length);
//use of word boundry ,not supported by devanagari characters
regex = RegExp("\\bमंत्री\\b", "g");
count = fullpage_content.match(regex);
console.log("count in page : " + count);
regex = XRegExp("मंत्री");
var match = XRegExp.matchChain(fullpage_content, [regex]);
console.log("count in page : " + match + ", " + match.length);
//xregex do not support word boundry \\b
regex = XRegExp("\\bमंत्री\\b");
match = XRegExp.matchChain(fullpage_content, [regex]);
console.log("count in page : " + match + ", " + match.length);js的输出(在Chrome上)
页数:मंत्री,मंत्री,2 页面计数: null 页数:मंत्री,मंत्री,2 页数:,0
整个单词搜索应该给出一个答案,但是regexp和XRegExp都让我失望了。我需要些帮助。
发布于 2014-04-25 07:38:20
regex = XRegExp("(?:^|[^\\p{Devanagari}\\p{L}])मंत्री(?=[^\\p{Devanagari}\\p{L}]|$)");解决了。特别感谢路易。在最后完成之前,我测试了一个更严格的测试用例。
मंत्रीमंममंत्री。.मंत्रीमंत्री-<मंत्रीमंत्री>मंत्री,,मंत्री,,मंत्री,मंत्री
मंत्री,मंत्री
मंत्री,मंत्रीमंत्रीमुख्यमंत्री
发布于 2014-04-23 11:07:00
使用这个regexp,我可以在मंत्री上得到一个匹配,但排除मुख्यमंत्री:
var regex = XRegExp("(?:^|\\P{L})मंत्री(?=\\P{L}|$)");这样做的是匹配मंत्री,如果它:
请注意,这与\b所做的略有不同,因为\b不匹配数字。例如,/\bmantri\b/不匹配mantri123,因为1、2和3被认为是单词的一部分,因此不会标记单词边界。如果您想要类似于\b的东西,那么就会这样做:
var regex = XRegExp("(?:^|[^\\p{L}\\p{N}])मंत्री(?=[^\\p{L}\\p{N}]|$)");与第一个regexp的不同之处在于,对于这个regexp,मंत्री不能在前面或后面加上一个数字。
我在正则表达式的末尾使用了一个负的前瞻性,所以结果中排除了单词后面的字符。没有等效的负查找,所以如果在मंत्री之前有一个字符,它将出现在结果中。对于特定的应用程序,您必须决定如何处理这个字符。
发布于 2014-04-23 08:21:55
把这个放在小提琴里,看看是否有什么东西能帮你。
alert(fullpage_content);
//match(/मंत्री/g);
alert("मंत्री मुख्यमंत्री".match(/मंत्री/g));https://stackoverflow.com/questions/23236767
复制相似问题