Javascript正则表达式匹配字符串后跟数字?
我有一个格式的string:num
: string:num
其中num是任意数字但字符串是我需要匹配的已知字符串。 我希望在if语句中将其作为:
if( it matches 'string:' followed by a number) { //do something }
你要 …
if (stringYouHave.match(/^string:([0-9]+)$/)) { // do something }
这包括:
-
^
字符串的开头 -
string:
您提到的文字“string:” -
(.....)
这个子表达式,如果您需要知道字符串中的哪个数字,可以在后面引用(尽管在这种特殊情况下,您也可以将'string:'
替换为''
) -
[0-9]
0
到9
之间的字符(即数字) -
+
必须至少有一个“那些”(即上面提到的数字),但可以有任何数字 -
$
字符串的结尾
if( it.match(/^string:\d+$/) ( { ... }
如果只想检查输入字符串是否与模式匹配,可以使用RegExp.test函数:
if (/^string:[0-9]+$/.test(input)){ //.. }
或者使用String.search函数:
if (input.search(/^string:[0-9]+$/) != -1){ //.. }
如果要validation并获取数字:
var match = input.match(/^string:([0-9]+)$/), number; if (match){ number = +match[1]; // unary plus to convert to number // work with it }
以上适用于整数; 如果你想要浮点数,甚至科学记数法(如C语言所理解的那样),你会想要这样的东西:
if (stringYouHave.match(/^string:[+-]?[0-9]+(\.[0-9]+)?([eE][+-]?[0-9]+)?$/)) { // do something }
你可以删除第一个[+ – ]? 如果你不关心标志,(。[0-9] +)? 如果你不关心浮点数,和([eE] [+ – ]?[0-9] +)? 如果你不关心科学记谱符指数。 但是如果你有可能想要匹配那些,你想在正则表达式中将它们包含为可选项。
if(teststring.match(new RegExp("^" + knownstring + ":\d+$"))) { // some code }
if(!!"string:5456".match(/^string:\d+$/)) { ... }
Number是上例中的整数。