Isk*_*nev 7 javascript regex internationalization internet-explorer-8
如果我使用一些希腊月份名称并对它们进行不区分大小写的正则表达式,则它们在大写的情况下不会匹配相同的月份:
<!doctype html>
<html>
<head>
</head>
<body>
<pre></pre>
<script>
var names = [
'???????',
'?????',
'???????',
'???????',
'?????????',
'?????????'
];
var pre = document.getElementsByTagName('pre')[0];
var i;
for (i = 0; i < names.length; ++i) {
var m = names[i];
var r = new RegExp(m, 'i');
pre.innerHTML += m + ' ' + r.test(m.toLocaleUpperCase()) + '\n';
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在Ie8中,这将打印名称,然后是false.在其他浏览器中,它打印为true.
只需使用.toUpperCase()而不是.toLocaleUpperCase().
后者转化???????为???????,前者将其转化为???????.
但是,我不能说哪种变体是正确的,因为我不知道资本化规则?.