检查字符串是否等于单词和数字

时间:2013-12-16 18:51:40

标签: javascript

我有一个包含字符串作为属性的对象。我想检查这个属性是不是等于某个单词,后跟一个空格和一个数字。例如,像这样:

var TheWordToCheck = "SomeWord";

if (TheObject['SomeProperty'] !== (TheWordToCheck + ' ' + 2)) {...}
if (TheObject['SomeProperty'] !== (TheWordToCheck + ' ' + 3)) {...}

在此示例中,代码仅检查"SomeWord 2""SomeWord 3"。如何在检查任何数字时简化此操作?

感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式和match()方法(未经测试)

var reg = new RegExp("^"+TheWordToCheck+"\\s\\d$")

if (!TheObject['SomeProperty'].match(reg) {...

FIDDLE

答案 1 :(得分:0)

取决于您需要检查的数字范围,如果它是静态的或小于最大值,您可以使用循环并将循环变量附加到字符串并检查

for (var i=0;i<maxNumber;i++)
{ 
if (TheObject['SomeProperty'] !== (TheWordToCheck + ' ' + i)) {...
                 break;
                 }
}

或者您可以按照评论中的建议使用正则表达式

答案 2 :(得分:0)

您可以使用正则表达式来检查:

var TheWordToCheck = "SomeWord";
var TheObject = {
    "SomeProperty": "SomeWord 100"
};

var pattern = new RegExp(TheWordToCheck + ' \\d', 'g');
if (TheObject['SomeProperty'].match(pattern) != null) { ... }

请注意,您必须执行两次反斜杠,以确保第一个在模式中进行转义。您还应该使用RegEx构造函数,以便能够在模式中使用变量。