Javascript正则表达式匹配字符串后跟数字?

我有一个格式的string:numstring:num其中num是任意数字但字符串是我需要匹配的已知字符串。 我希望在if语句中将其作为:

 if( it matches 'string:' followed by a number) { //do something } 

你要 …

 if (stringYouHave.match(/^string:([0-9]+)$/)) { // do something } 

这包括:

  1. ^字符串的开头
  2. string:您提到的文字“string:”
  3. (.....)这个子表达式,如果您需要知道字符串中的哪个数字,可以在后面引用(尽管在这种特殊情况下,您也可以将'string:'替换为''
  4. [0-9] 09之间字符(即数字)
  5. +必须至少有一个“那些”(即上面提到的数字),但可以有任何数字
  6. $字符串的结尾
 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是上例中的整数。