gpt4 book ai didi

javascript - 如何在 JavaScript 中检测并解析这些字符串格式之一?

转载 作者:行者123 更新时间:2023-12-03 11:36:58 26 4
gpt4 key购买 nike

我正在编写一个 JavaScript 函数(无 jQuery),它将接收具有以下格式之一的字符串:

  1. [废话] [阅读本文] [废话] [可选废话]
  2. [Blah] 阅读此内容 [Blah] 可选 blah

我想从其余字符串中选择“阅读此”字符串。 “Optional blah”位可能存在也可能不存在(在第一种情况下连同随附的方括号),但它们应该不重要。关于如何编写执行此操作的函数有什么想法吗?

最佳答案

Reg Exp 可以完成这项工作:

var a = "[Blah] [Read this] [Blah] [Optional blah]";
var b = "[Blah] Read this [Blah] Optional blah";
var text1 = a.match(/\[[^\]]+\]\s*\[*([^\]\[]+)\]*\s*\[[^\]]+\]\s*(\[*[^\]]+\]*)*/)[1].trim();
var text2 = b.match(/\[[^\]]+\]\s*\[*([^\]\[]+)\]*\s*\[[^\]]+\]\s*(\[*[^\]]+\]*)/)[1].trim();

console.log(text1); // "Read this"
console.log(text2); // "Read this"

编辑1如果您想知道您拥有哪种格式:

var a = "[Blah] [Read this] [Blah] [Optional blah]";
var b = "[Blah] Read this [Blah] Optional blah";
var text1 = a.match(/\[[^\]]+\]\s*(\[*([^\]\[]+)\]*)\s*\[[^\]]+\]\s*(\[*[^\]]+\]*)*/);
var text2 = b.match(/\[[^\]]+\]\s*(\[*([^\]\[]+)\]*)\s*\[[^\]]+\]\s*(\[*[^\]]+\]*)/);
var text1_value = text1[2].trim();
var text2_value = text2[2].trim();
var text1_is_A_format = (/\[[^\]]+\]/).test(text1[1]);
var text2_is_A_format = (/\[[^\]]+\]/).test(text2[1]);

console.log(text1_is_A_format ); // true
console.log(text1_value); // "Read this"
console.log(text2_is_A_format ); // false
console.log(text2_value); // "Read this"

(我在“[阅读此]”周围添加了 () 并检查 [] 是否存在)

编辑2

将字符串拆分为我们需要的项目数组

var a = "[Blah1] [Read this2] [Blah3] [Optional blah4]";
var re = new RegExp('(\\]\\s*\\[|\\s+\\[|\\]\\s+|\\[|\\])','g'); // Create reg exp (will be used 2 times)
var b = a.split(re); // Split array on every match
for(var i = b.length-1; i >= 0; i--){ // remove useless array items
// We are making a count down for because we remove items from the array
if(b[i].length == 0 || b[i].match(re))
b.splice(i, 1);
}
console.log(b); // Print : Array [ "Blah1", "Read this2", "Blah3", "Optional blah4" ]

关于javascript - 如何在 JavaScript 中检测并解析这些字符串格式之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26446298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com