我有一个格式的字符串:string:num
其中num是任意数字但字符串是我需要匹配的已知字符串。我希望在if语句中将其作为:
if( it matches 'string:' followed by a number) {
//do something
}
答案 0 :(得分:43)
你想......
if (stringYouHave.match(/^string:([0-9]+)$/)) {
// do something
}
这包括:
^
字符串的开头string:
您提到的文字“字符串:”(.....)
此子表达式,如果您需要知道哪个号码在字符串中,您可以在后面引用(尽管在这种特殊情况下,您也可以只替换{{1与'string:'
)''
[0-9]
与0
之间的字符(即数字)9
必须至少有一个“那些”(即上面提到的数字),但可以有任何数字+
字符串结尾答案 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是一个整数。