Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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函数,确保文本仅包含格式化为$placeholder的美元符号$_Javascript_Regex - Fatal编程技术网

javascript函数,确保文本仅包含格式化为$placeholder的美元符号$

javascript函数,确保文本仅包含格式化为$placeholder的美元符号$,javascript,regex,Javascript,Regex,我需要一个javascript函数,它获取一个字符串,如果该字符串包含 -任何未关闭的美元符号 -或者是一个封闭的美元符号,美元之间有一些不同于一系列字符的东西 function validateFormat(text) { // Do stuff } 例如,如果文本: validateFormat("blab abalaba $something$ avava $affo$") -> true validateFormat("blab abalaba $something$ avav

我需要一个javascript函数,它获取一个字符串,如果该字符串包含
-任何未关闭的美元符号
-或者是一个封闭的美元符号,美元之间有一些不同于一系列字符的东西

function validateFormat(text) {
// Do stuff
}
例如,如果文本:

validateFormat("blab abalaba $something$ avava $affo$")  -> true
validateFormat("blab abalaba $something$ avava $ affo$") -> false because of the white space
validateFormat("blab abalaba $1so3mething$ avava $affo$") -> false because of the numbers
validateFormat("blab abalaba $something") -> false because of unclosed placeholder
有人能帮我吗

// delete all valid placeholders
text = text.replace(/\$[a-z]+\$/gi, "");

// are there any "$" left?
if (text.search(/\$/) != -1) {
    return false;
}
return true;
这是另一个解决方案:

matches = text.match(/\$[a-z]+\$|\$/gi);
if (matches) {
    for (var i = 0; i < matches.length; i++) {
        if (matches[i] == '$') { return false };
    }
}
return true;
matches=text.match(/\$[a-z]+\$\124;\$/gi);
如果(匹配){
对于(var i=0;i
这是另一个解决方案:

matches = text.match(/\$[a-z]+\$|\$/gi);
if (matches) {
    for (var i = 0; i < matches.length; i++) {
        if (matches[i] == '$') { return false };
    }
}
return true;
matches=text.match(/\$[a-z]+\$\124;\$/gi);
如果(匹配){
对于(var i=0;i
另一种方式:

text.match(/\$/g).length/2 == text.match(/\$[a-z]+\$/g).length
这将计算
$
的数量,并将其与
$
foobar的数量进行比较,另一种方法是:

text.match(/\$/g).length/2 == text.match(/\$[a-z]+\$/g).length

这将计算
$
的数量,并将其与
$
foobar的数量进行比较。是否缺少.length?顺便说一句:我非常喜欢这个解决方案。是否缺少.length?顺便说一句:我非常喜欢这个解决方案。