我们可以创建一个正则表达式,以便它可以找到所有花括号之间的子字符串。之后,我们可以使用exec()或match()方法来提取匹配的子字符串。
在本教程中,我们将学习使用JavaScript的正则表达式来获取花括号之间的字符串。例如,如果我们有一个字符串像‘This is a {string} with {curly} braces, we need to extract all substrings that reside between the curly braces. ’,我们需要提取所有位于花括号之间的子字符串。
exec()方法通常与正则表达式一起使用,用于查找匹配的子字符串。它以数组格式返回所有匹配结果,如果找不到任何匹配的情况,则返回null值。
Users can follow the syntax below to use the exec() method with the regular expression to get all substrings between the curly braces.
var regex = /{([^}]+)}/g; while (match = regex.exec(originalStr)) { results.push(match[1]); }
在上面的语法中,我们创建了一个正则表达式来查找大括号之间的子字符串。然后,我们遍历匹配数组并获取所有匹配的出现。
‘originalStr’变量包含下面示例中带有花括号的字符串。regex.exec()方法返回所有匹配子字符串的二维数组。数组的每个元素都是一个包含两个字符串的数组。第一个元素是带有花括号的字符串,第二个元素是我们想要提取的不带花括号的字符串。
在输出中,用户可以观察到它显示了“Developers”和“JavaScript”子字符串,因为它们都在花括号之间。
<html> <body> <h3>Using the <i> regular expression and exec() method </i> to get string between curly braces in JavaScript</h3> <div id = "demo"> </div> <script> let output = document.getElementById("demo"); function getStringBetweenBraces() { var originalStr = "Hello {Developers}! Let's develop {JavaScript} code!"; var found = []; var regex = /{([^}]+)}/g; var results = []; let match; while (match = regex.exec(originalStr)) { results.push(match[1]); } output.innerHTML = "The original string is " + originalStr + "<br>"; output.innerHTML += "The substrings between curly braces are " + results + "<br>"; } getStringBetweenBraces(); </script> </body> </html>
match()方法还以数组格式返回字符串中的所有匹配出现。
用户可以按照以下语法使用match()方法和正则表达式来获取花括号之间的字符串
let results = originalStr.match(/{([^}]+)}/g);
在上面的语法中,originalStr是一个带有花括号的字符串,并且我们将正则表达式作为match()方法的参数传递。
在下面的示例中,match()方法返回带有花括号的字符串数组。然而,它不返回删除花括号后的字符串。用户可以使用subStr()或substring()方法从返回的结果中删除花括号。
<html> <body> <h3>Using the <i> regular expression and match() method </i> to get string between curly braces in JavaScript</h3> <div id = "demo"> </div> <script> let output = document.getElementById("demo"); function getStringBetweenBraces() { var originalStr = "This is {sample} string! This is {original} string!"; let results = originalStr.match(/{([^}]+)}/g); output.innerHTML = "The original string is " + originalStr + "<br>"; output.innerHTML += "The substrings between curly braces are " + results + "<br>"; } getStringBetweenBraces(); </script> </body> </html>
我们还可以通过使用for循环迭代字符串来提取花括号之间的所有子字符串。我们可以跟踪花括号的起始索引和结束索引。然后,我们可以使用substring()方法从原始字符串中提取子字符串。
用户可以按照以下语法使用for循环来提取花括号之间的子字符串。
for ( ) { if (str[i] == "{") start = i; if (str[i] == "}") { end = i; let bracesString = str.substring(start + 1, end); } }
在上述语法中,我们跟踪花括号的开始和结束索引,并使用substring()方法提取字符串。
第一步 - 使用for循环遍历字符串。
第二步 - 如果字符串中索引为'I'的字符等于'{',则将索引的值存储在start变量中。
步骤 3 - 如果字符串中索引为'I'的字符等于'}',将索引的值存储在end变量中。
第3.1步 − 使用substring()方法获取在‘end’索引之后的‘start + 1’索引之间的子字符串。
步骤 3.2 - 将结果子字符串推入数组中。
在下面的示例中,我们按照上述步骤使用for循环提取了花括号之间的字符串。然而,这种方法不适用于提取嵌套花括号之间的字符串。
<html> <body> <h3>Using the <i> for loop </i> to get string between curly braces in JavaScript</h3> <div id = "demo"> </div> <script> let output = document.getElementById("demo"); function getStringBetweenBraces() { var str = "Hello {Users}! Welcome to {Website}!"; var start = 0; var end = 0; let results = []; for (var i = 0; i < str.length; i++) { if (str[i] == "{") { start = i; } if (str[i] == "}") { end = i; let bracesString = str.substring(start + 1, end); results.push(bracesString); } } output.innerHTML = "The original string is " + str + "<br>"; output.innerHTML += "The substrings between curly braces are " + results + "<br>"; } getStringBetweenBraces(); </script> </body> </html>
我们在本教程中学习了如何使用正则表达式提取花括号之间的字符串。在第一种方法中,我们使用了带有正则表达式的exec()方法;在第二种方法中,我们使用了带有正则表达式的match()方法。
在第三种方法中,我们使用了for循环而不是正则表达式。
以上是如何使用JavaScript的正则表达式来获取花括号之间的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!