JavaScript中的indexOf('₹')不适用于印度卢比符号等字符,不起作用。

3
我在我的网页上有一个下拉菜单,选项文本格式如下-(₹代表印度卢比字符)
<option value = "101">Notebook (&#8377;25)</option>
<option value = "102">Pen (&#8377;5)</option>

在Javascript函数中,我获取选项文本并尝试从中仅提取价格,使用substring和indexOf函数。 var optionString = $('#stationeryList').find('option:selected').text();//这是"Pen (₹5)"
alert(optionString.indexOf('&#8377;'));  // returns -1

如何处理这个问题?


你尝试过使用正则表达式吗? - toesslab
8
请尝试使用 optionString.indexOf(String.fromCharCode(8377))optionString.indexOf('\u20B9')optionString.indexOf('₹') - melpomene
问题:var div = document.createElement('div');div.innerHTML ='笔记本电脑(&#8377;25)';var txt = div.innerHTML;console.log(txt.indexOf('&#8377;') === -1) - Andreas Louv
有点惊讶,说实话。 - Lightness Races in Orbit
@melpomene:谢谢你的快速回复。它完美地运行了。我选择了你提供的选项之一,即optionString.indexOf('\u20B9')。:) - Devika Balasubramanian
1个回答

0
您可以使用以下正则表达式提取金额:
var value = "Pen (₹5)";
var amountMatcherRegex = new RegExp('.*\\(' + String.fromCharCode(8377) + '(\\d+)\\)','g');
var matches = amountMatcherRegex.exec(value);
if(matches && matches[1]) {
     alert(matches[1]);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接