我有一个包含字符串作为属性的对象。我想检查这个属性是不是等于某个单词,后跟一个空格和一个数字。例如,像这样:
var TheWordToCheck = "SomeWord";
if (TheObject['SomeProperty'] !== (TheWordToCheck + ' ' + 2)) {...}
if (TheObject['SomeProperty'] !== (TheWordToCheck + ' ' + 3)) {...}
在此示例中,代码仅检查"SomeWord 2"
和"SomeWord 3"
。如何在检查任何数字时简化此操作?
感谢。
答案 0 :(得分:2)
您可以使用正则表达式和match()
方法(未经测试)
var reg = new RegExp("^"+TheWordToCheck+"\\s\\d$")
if (!TheObject['SomeProperty'].match(reg) {...
答案 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构造函数,以便能够在模式中使用变量。