2012-02-12 4 views
1

В следующем коде я использовал RegExp для проверки E с модификатором чувствительности к регистру i в строке The best things in life are free. Но он возвращает true, даже если в строке нет прописных букв E.RegExp в JavaScript с чувствительным к регистру модификатором

<html> 
<body> 

<script type="text/javascript"> 
var patt1=new RegExp("E","i"); 

document.write(patt1.test("The best things in life are free")); 
</script> 

</body> 
</html> 
+6

The * я * означает "без учета регистра". – Gumbo

+0

@Gumbo Thats, в чем проблема. RegExp должен возвращать 'false', потому что в строке' E' нет прописных букв 'Лучшие вещи в жизни свободны' – sandbox

ответ

5

Регулярные выражения чувствительны к регистру по умолчанию просто избавиться от i флага. Флаг i обозначает игнорировать кейс.

отметить, что это, как правило, легче писать регулярные выражения, как:

/E/.test(inputstring) 

но если вы только тестирование на наличие фиксированной строки, что лучше не использовать регулярное выражение на всех

containsChar = (inputstring.indexOf('E') > -1); 

Вы можете узнать больше о regular expressions и indexOf на mozilla's javascript reference site

Смежные вопросы