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

字符串后跟数字的Javascript正则表达式匹配?,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个字符串的格式:string:num,其中num是任何数字,但string是我需要匹配的已知字符串。我希望在if声明中包含以下内容: if( it matches 'string:' followed by a number) { //do something } 你想要 if (stringYouHave.match(/^string:([0-9]+)$/)) { // do something } 这包括: ^字符串的开头 string:您提到的文字“string:”

我有一个字符串的格式:
string:num
,其中num是任何数字,但string是我需要匹配的已知字符串。我希望在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
    之间的字符(即数字)
  • +
    必须至少有一个“数字”(即上面提到的数字),但可以有任何数字
  • $
    字符串的结尾

  • 上述方法适用于整数;如果您想要浮点数,甚至是科学符号(在类似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:[0-9]+$/.test(input)){
      //..
    }
    
    if (input.search(/^string:[0-9]+$/) != -1){
      //..
    }
    
    或具有以下功能:

    if (/^string:[0-9]+$/.test(input)){
      //..
    }
    
    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
    }
    

    +1但参数和+可能超出要求,具体取决于OP想要什么-我会为他解释其含义。@VoteyDisciple:-var temp=“select*from
    Demo
    AS
    D1
    Demo2
    AS
    D2
    ”;我想选择
    后面的文本作为
    ,即使用正则表达式的D1和D2。?@Sanjiv,这与此问题无关。要问一个新问题,您需要在页面顶部的“提问”按钮。如果您对Java正则表达式不太了解,请使用以下工具:)@Matt Ball:that site使用Java正则表达式;根据标签,OP正在使用JavaScript。有帮助的问题:为什么你要在开头加上双重否定?试图从中强制一个布尔值。最好在此处使用.test()。我的答案不会强制字符串与科学记数法的完整规则相匹配,因为科学记数法要求小数点只剩一位。如果你想要的话,你会想要类似([+-]?[0-9]+(\.[0-9]+)?|[+-]?[0-9](\.[0-9]+)([eE][+-]?[0-9]+)?)的东西,“|”字符左侧的第一部分需要一个可选符号、1+位数字,还可以选择一个带更多位数的小数。第二部分需要一个有效的科学符号数字,只包括小数点后的一位数字。如果您还想允许像“5”这样的数字,您可以将小数点后面的“+”改为“*”。