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

时间:2009-08-11 20:23:57

标签: javascript jquery regex

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

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

6 个答案:

答案 0 :(得分:43)

你想......

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

这包括:

  1. ^字符串的开头
  2. string:您提到的文字“字符串:”
  3. (.....)此子表达式,如果您需要知道哪个号码在字符串中,您可以在后面引用(尽管在这种特殊情况下,您也可以只替换{{1与'string:'
  4. '' [0-9]0之间的字符(即数字)
  5. 9必须至少有一个“那些”(即上面提到的数字),但可以有任何数字
  6. +字符串结尾

答案 1 :(得分:5)

if( it.match(/^string:\d+$/) ( {
   ...
}

答案 2 :(得分: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
}

答案 3 :(得分:1)

以上适用于整数;如果你想要浮点数,甚至科学记数法(如C语言所理解的那样),你会想要这样的东西:

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

你可以删除第一个[+ - ]吗?如果你不关心标志,(。[0-9] +)?如果你不关心浮点数,和([eE] [+ - ]?[0-9] +)?如果你不关心科学记谱符指数。但如果你有可能想要匹配那些,你想在正则表达式中将它们包含为可选项。

答案 4 :(得分:1)

if(teststring.match(new RegExp("^" + knownstring + ":\d+$"))) {
  // some code
}

答案 5 :(得分:0)

if(!!"string:5456".match(/^string:\d+$/)) { ... }

在上例中,Number是一个整数。