javascript函数,确保文本仅包含格式化为$placeholder的美元符号$
我需要一个javascript函数,它获取一个字符串,如果该字符串包含javascript函数,确保文本仅包含格式化为$placeholder的美元符号$,javascript,regex,Javascript,Regex,我需要一个javascript函数,它获取一个字符串,如果该字符串包含 -任何未关闭的美元符号 -或者是一个封闭的美元符号,美元之间有一些不同于一系列字符的东西 function validateFormat(text) { // Do stuff } 例如,如果文本: validateFormat("blab abalaba $something$ avava $affo$") -> true validateFormat("blab abalaba $something$ avav
-任何未关闭的美元符号
-或者是一个封闭的美元符号,美元之间有一些不同于一系列字符的东西
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?顺便说一句:我非常喜欢这个解决方案。