Соответствие регулярного выражения Javascript для строки, за которой следует номер?
У меня есть строка формата: string:num
, где num - любое число, но строка - это известная строка, которую мне нужно сопоставить. Я хотел бы иметь это в выражении if как:
if( it matches 'string:' followed by a number) {
//do something
}
Ответы
Ответ 1
Вы хотите...
if (stringYouHave.match(/^string:([0-9]+)$/)) {
// do something
}
Это включает в себя:
-
^
начало строки
-
string:
буквальная строка: вы упомянули
-
(.....)
Это подвыражение, о котором вы можете обратиться позже, если вам нужно знать, какой номер находится в строке (хотя в этом конкретном случае вы также можете просто заменить 'string:'
на ''
)
-
[0-9]
символ между 0
и 9
(т.е. цифрой)
-
+
Должен иметь хотя бы один "из них" (т.е. цифры, упомянутые выше), но может иметь любое число
-
$
конец строки
Ответ 2
if( it.match(/^string:\d+$/) ( {
...
}
Ответ 3
Если вы хотите только проверить, соответствует ли входная строка шаблону, вы можете использовать функцию RegExp.test:
if (/^string:[0-9]+$/.test(input)){
//..
}
или с помощью функции String.search:
if (input.search(/^string:[0-9]+$/) != -1){
//..
}
Если вы хотите проверить и получить номер:
var match = input.match(/^string:([0-9]+)$/),
number;
if (match){
number = +match[1]; // unary plus to convert to number
// work with it
}
Ответ 4
Вышеприведенное полезно для целых чисел; если вы хотите числа с плавающей запятой или даже научную нотацию (как понимается в языках типа C), вам нужно что-то вроде этого:
if (stringYouHave.match(/^string:[+-]?[0-9]+(\.[0-9]+)?([eE][+-]?[0-9]+)?$/))
{
// do something
}
Вы можете удалить первый [+ -]? если вам не нужен знак, (. [0-9] +)? если вам не нужны плавающие точки, и ([eE] [+ -]? [0-9] +)? если вам не нравятся показатели научной нотации. Но если есть шанс, что вы хотите их сопоставить, вы хотите включить их в качестве необязательного в регулярное выражение.
Ответ 5
if(teststring.match(new RegExp("^" + knownstring + ":\d+$"))) {
// some code
}
Ответ 6
if(!!"string:5456".match(/^string:\d+$/)) { ... }
Число является целым числом в приведенном выше примере.