与变量匹配的Javascript模式
Javascript pattern matching a variable
我正在努力寻找一种方法来获得变量的模式匹配。我尝试过拆分事物,做indexOf,使用match和switch(true)语句,但都没有成功。任何帮助都将不胜感激!
currentExports = 'sec=sys,rw=badhost1.foo.com:badhost2.foo.com,root=badhost1.foo.com:badhost2.foo.com';
badExportHosts = params.badExportHosts.split(':');
for (badHost = 0; badHost < badExportHosts.length; badHost++) {
if (!currentExports.match(/badExportHosts[badHost]/g)) {
printf('Entry ' + badExportHosts[badHost] + ' was not found in ' + currentExports + ''n');
} else {
printf('Entry ' + badExportHosts[badHost] + ' was found in ' + currentExports + ''n');
}
如果我在表格中输入:
badhost1.foo.com:badhost2.foo.com
不幸的是,我得到了这样的结果:
Entry badhost1.foo.com was not found in sec=sys,rw=badhost1.foo.com:badhost2.foo.com,root=badhost1.foo.com:badhost2.foo.com
Entry badhost2.foo.com was not found in sec=sys,rw=badhost1.foo.com:badhost2.foo.com,root=badhost1.foo.com:badhost2.foo.com
我该如何匹配?
我认为你在这里的意图似乎不够清楚,但是,如果我理解正确,并且你只想检查你的"badHost"字符串是否包含在currentExports上的任何位置,你可以尝试替换它:
if (!currentExports.match(/badExportHosts[badHost]/g)) {
为此:
if (currentExports.indexOf(badExportHosts[badHost]) < 0) {
你走在了正确的轨道上。尝试使用RegExp
对象,如下所示:
var pattern;
currentExports = //your same code goes here
//...
for(badHost = 0; badHost < badExportHosts.length; badHost++){
pattern = new RegExp(badExportHosts[badHost], 'g');
if (!currentExports.match(pattern)) {
//your print statments go here
}
}
问题是,您对match()
的调用实际上是试图在for
循环的每次迭代中匹配字符串"badExportHosts[badHosts]",这是不好的,因为您需要匹配badExportHosts
数组中的值,而不是变量名本身。您需要一个类似/badhost1.foo.com/g
的正则表达式,RegExp
对象会为您提供该正则表达式。
相关文章:
- 初级JavaScript模式
- 什么'这是这个JavaScript模式的名称
- 是'要求(..)'常见的javascript模式或库函数
- 与变量匹配的Javascript模式
- javascript模式下的asp.net网格视图获胜'不要执着于改变索引
- Javascript:模式HREF需要替换
- 用于忽略先前请求响应的前端 JavaScript 模式
- 处理草图在Java中工作,但在JavaScript模式下不工作
- 插件的 JavaScript 模式
- HTML Javascript 模式弹出窗口,具有自动关闭功能
- 如何正确选择JavaScript模式
- 如何在 Emacs 的 javascript 模式下设置 2 个空格缩进
- 它是什么类型的Javascript模式
- 处理草图在 JavaScript 模式下不起作用
- JavaScript 模式,用于确定某人何时在页面上选择文本
- 对这个javascript模式感到困惑
- JavaScript模式弹出赢得'不起作用
- 使用WADIR点击javascript模式对话框弹出窗口
- Javascript模式资源
- 这两种JavaScript模式的优缺点是什么