2016-01-08 5 views
-2

У меня есть регулярное выражение, которое принимает десятичное число или число, но я хочу добавить кавычки. Таким образом, шаблон должен принятьRegex pattern: число с кавычками

"123" 
"123.12" 
"123232.1222121" 

Это регулярное выражение

/^\d*\.?\d*$/ 

Благодаря

+0

некоторые мне дали -1 почему –

ответ

2

Вы можете использовать дополнительные двойные кавычки в начале & конец:

/^(")?\d+(?:\.\d+)?\1$/ 

RegEx Demo

JS Демо

var regex = /^(")?\d+(?:\.\d+)?\1$/; 
 

 
var result = document.getElementById('result'); 
 
document.getElementById('text').addEventListener('keyup', function() { 
 
    var isValid = regex.test(this.value); 
 

 
    // For showing the result on page: DEMO purpose only 
 
    result.innerHTML = isValid ? 'Valid' : 'Invalid'; 
 
    result.className = isValid ? 'valid' : 'invalid'; 
 
    this.className = isValid ? 'valid' : 'invalid'; 
 
}, false);
input:valid, .valid { 
 
    color: green; 
 
} 
 
input:invalid, .invalid { 
 
    color: red; 
 
}
<input type="text" id="text" /> 
 
<div id="result"></div> 
 

 
<hr /> 
 
Using only HTML5 pattern attribute: <br /> 
 
<input pattern='(")?\d+(?:\.\d+)?\1' />

+1

Использование обратной ссылки '\ 1 '. Текущее регулярное выражение также примет '' 21' и '12 ''. – Tushar

+0

где добавить \ 1 –

+0

не работает