gpt4 book ai didi

javascript - 如何通过javascript或jquery从句子中提取括号内外的文本

转载 作者:行者123 更新时间:2023-12-03 00:42:20 28 4
gpt4 key购买 nike

我有一个句子存储在一个变量中。我需要将该句子提取成我在代码中的其他 3 个变量中提到的 3 个部分,目前我已经在变量中进行了硬编码。然后我需要分别控制台这些变量。我已经尝试过第一个切片,有没有更好的方法可以做到这一点。这是下面的代码。任何人都可以帮助我。

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

脚本

$(document).ready(function(){
var maintext = "Welcome to project,are you (1. Existing user or 2. new user)" ;
var text_split1 = maintext.split(' ').slice(0,4).join(' ');
//var text_split1 = "Welcome to project,are you" ; /*this text should come from maintext after extraction*/
var text_split2 = "1. Existing user" ; /*this text should come from maintext after extraction*/
var text_split3 = "2. new user" ; /*this text should come from maintext after extraction*/
console.log(text_split1);
console.log(text_split2);
console.log(text_split3);
});

最佳答案

在这种情况下,最好的选择是创建正则表达式。

就你的情况(如果我没猜错的话)你有一个句子组成:

  1. 一些文字
  2. 左括号“(”
  3. 更多文字
  4. “或”这个词
  5. 更多文字
  6. 右括号')'

因此,您需要一个正则表达式来匹配上述格式,并且希望捕获项目 1、3 和 5。

在这里,我为您制作了正则表达式:/^(.*) ?\((.*) 或 (.*)\)$/

现在,使用函数exec(string),您可以匹配所需的字符串并从中捕获所需的部分。

regex = /^(.*) ?\((.*) or (.*)\)$/;
maintext = "Welcome to project,are you (1. Existing user or 2. new user)";
matches = regex.exec(maintext);
text_split1 = matches[1];
text_split2 = matches[2];
text_split3 = matches[3];

请注意,我没有使用matches[0]。这是因为这是正则表达式的完整匹配,在本例中,这将是您最初拥有的完整字符串。

此外,请注意,正则表达式可能会因括号内的任何文本包含完整单词“or”而失败,该单词用于分隔字符串的两个部分。您必须确保这种情况不会发生,或者可以使用一些特殊字符来分隔两个文本而不是单词。

关于javascript - 如何通过javascript或jquery从句子中提取括号内外的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53397205/

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