Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 注册汇率的三个条件?_Javascript_Regex - Fatal编程技术网

Javascript 注册汇率的三个条件?

Javascript 注册汇率的三个条件?,javascript,regex,Javascript,Regex,我正在从Photoshop脚本升级到其他脚本: 使用JavaScript,我需要检查网址的三个方面的有效性 “某处”前后的点() “.somesite”和“.com/”之间没有任何内容 “.com”和“/”之间没有任何内容 在我的例子中,我看到的是www.somesite.com 以下是迄今为止的代码: URIArr = [ "https://www.somesite.com/find-work-home", "www.somesite.com/", "blahsomesite.com/ba

我正在从Photoshop脚本升级到其他脚本: 使用JavaScript,我需要检查网址的三个方面的有效性

  • “某处”前后的点()
  • “.somesite”和“.com/”之间没有任何内容
  • “.com”和“/”之间没有任何内容
在我的例子中,我看到的是www.somesite.com

以下是迄今为止的代码:

URIArr = [
"https://www.somesite.com/find-work-home",
"www.somesite.com/",
"blahsomesite.com/bananas/stuff",
"something.somesite.com/bananas/cheese",
"blahsomesite.com/bananas/123",
"www.blah.somesite.m.com/bananas/5678",
"blah.somesite.comm/bananas/ook",
]


for (var i = 0; i < URIArr.length; i++)
{
    var temp = URIArr[i];
    var valid = checkURL(".somesite", temp);
    if (!valid)
    {
        alert(temp + " is " + checkURL(".somesite", temp));
    }
}

function removeTrailingSlashes(site)     
{     
    return site.replace(/\/$/, "");
} 

function checkURL(webstr, str)
{

// A dot (.) before and after "somesite"
// Nothing between ".somesite" and ".com/"
// Nothing between ".com" and the "/"

    var test1 = false;
    var test2 = false;   
    var test3 = false;   
    var c = ".com";
    var haystack = str.toLowerCase();
    var needle = webstr.toLowerCase();
    haystack = removeTrailingSlashes(haystack);

    if (!haystack.charAt(haystack .length) === "/")
    haystack  += "/";

    var n = haystack.indexOf(needle);
    var m = n + (needle.length);

    // first check
    if (str.charAt(n) && str.charAt(m) === ".") test1 = true;

    //second check
    var o = haystack.indexOf(c);
    if (o-m === 0) test2 = true;

    // third check
    var p = o + (c.length);
    var truncStr = haystack.substring(o, haystack.length);
    var q = truncStr.indexOf("/") + o; 
    if (q-p === 0) test3 = true;

    // final triplecheck
    if ((test1 == true) && (test2 == true) && (test3== true))  return true 
     return false
}
URIArr=[
"https://www.somesite.com/find-work-home",
“www.somesite.com/”,
“blahsomesite.com/bananas/stuff”,
“something.sometsite.com/pananas/cheese”,
“blahsomesite.com/bananas/123”,
“www.blah.somesite.m.com/bananas/5678”,
“诸如此类的东西。通信/香蕉/ook”,
]
对于(变量i=0;i
问题是: -我是否错过了任何技巧(我注意到,对于第三种情况,我必须添加尾部斜杠,即使它们可能不存在) 但更重要的是: -这可以用(三)个正则表达式重新处理吗


这是Reginald X.Pression的作业吗?

您可以将以下单个正则表达式用于所有三个测试:

\.somesite(?=\.com\/)
Js代码:

var regex = /\.somesite(?=\.com\/)/g;
var valid = regex.test(myString);    //true if found.. else false

嗯,我觉得你的三个条件是:

  • “某处”前后的点()
  • “.somesite”和“.com/”之间没有任何内容
  • “.com”和“/”之间没有任何内容
可简化为1个条件:

  • .somesite.com/
如果是这样的话,实际上不使用正则表达式,您可以通过以下方式解决:

var valid = somestring.indexOf(".somesite.com/") > -1;
使用正则表达式将是:

var valid = somestring.match(/\.somesite\.com\//);