gpt4 book ai didi

javascript - 正则表达式 : word between spaces

转载 作者:行者123 更新时间:2023-11-29 18:17:04 25 4
gpt4 key购买 nike

对不起愚蠢的问题,但有一个例子:http://jsfiddle.net/rb98M/

var q = 'SELECT CASE WHEN STATE IN ';
q = q.replace(/(^|\s)\w*(\s|$)/g, function(match) { return match.toLowerCase(); });
alert(q);

我有一个字符串,我想让每个单词都变成小写,它位于空格之间(并且可以在行首和行尾)。

但是,我的结果是:

在 STATE 中选择 CASE

这就是我的问题。为什么会这样?

编辑 我希望传递 SELECT * FROM [Users] u 并获取 select * from [Users] u 和 e.t.c(包括每个SQL 语句并排除 [])

中的任何表名和属性

最佳答案

因为您没有将单词与其他标点分开。所以我相信只使用 \S 就足够了。

q = q.replace(/(\S+)/g, function(match)

在你的情况下,它不起作用,因为\s\w*\s 正在从输入中吃掉 SELECT(末尾有空格),而 CASE 是前面没有足够的空间(\s)。

以下是使用正则表达式匹配您的输入的方式:

SELECT CASE WHEN state IN 
^ m1 ^ ^ m2 ^ ^m3^

它只是忽略了正则表达式中的 CASEstate 单词。因为 CASE 之前的空格被 SELECT 选取了。您在单词的两边都有强制空格(\s)(即 \s\w*\s)。换句话说,您的正则表达式有重叠。

更新的正则表达式:

q = q.replace(/(?:\s|^)(\w+)(?=\s|$)/g, function(match)

关于javascript - 正则表达式 : word between spaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268572/

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