我需要一个 JavaScript 字符串,它可以包含一个或多个以字母开头的单词。每个单词可以在相邻字母/数字之间包含数字、字母、破折号和下划线。单词不得以破折号或下划线开头或结尾。行尾允许有空格。第一个单词必须以字母开头,长度可以是 1 或更长。
直到我来到下一个
/^[a-zA-Z]+( [a-zA-Z0-9\-\_]*)*[a-zA-Z0-9]+$/
但不幸的是,它不能按我的需要工作。特别是,类型表达式a s--5__f也将通过测试。
我需要一个 JavaScript 字符串,它可以包含一个或多个以字母开头的单词。每个单词可以在相邻字母/数字之间包含数字、字母、破折号和下划线。单词不得以破折号或下划线开头或结尾。行尾允许有空格。第一个单词必须以字母开头,长度可以是 1 或更长。
直到我来到下一个
/^[a-zA-Z]+( [a-zA-Z0-9\-\_]*)*[a-zA-Z0-9]+$/
但不幸的是,它不能按我的需要工作。特别是,类型表达式a s--5__f也将通过测试。
我有一个应用程序Vue.js ,我需要创建一个进度条。我使用 Svg 是因为其他选项不起作用。如何将 SVG 半圆分成相等的部分。我得到一条实线。试图操纵属性stroke-dasharray,但它不起作用。你需要得到这样的东西:
到目前为止我已经做到了
我的代码:
<div class="radial">
<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100" viewBox="0 0 200 200" data-value="40">
<path class="bg" stroke="#ccc" d="M41 149.5a77 77 0 1 1 117.93 0" fill="none"/>
<path class="meter" stroke="#D15F45" d="M41 149.5a77 77 0 1 1 117.93 0" fill="none" pathLength="100" stroke-dasharray="38, 100"/>
</svg>
</div>
有一个 Vue index.js 路由器:
routes: [
path: "/",
name: "main",
component: Main,
children: [
{
path: 'clients',
name: 'clients',
component: ClientsSettings
},
{
path: 'pm-area',
name: 'pm-area',
component: PmArea,
children: [
{
path: 'create-project',
name: 'create-project',
component: Clientrequest
}
]
},
]
]
如果我在代码中使用转换clients或pm-area帮助this.$router.push('clients'), this.$router.push('pm-area'),那么我可以轻松地从一个组件切换到另一个组件。但是如果我指定了路径this.$router.push('pm-area/create-project),那么我会去这个组件,但是从它的帮助下,例如,this.$router.push('clients)我不会进入 Clients 组件,因为路径将是下面的localhost:3001/pm-area/clients,但它应该是localhost:3001/clients。在这种路径嵌套的情况下,如何在组件之间导航?
有一张表格,其中列出了 5 年指定日期的费用类别和金额。您想要获取整个期间每个类别的每周总计总数。也就是说,在每周结束时,您需要显示该类别的总金额。所有这些都必须以一张表格的形式获得。这就是我卡住的地方。我的脚本将每对值输出为单独的一行表格。脚本如下
DECLARE @i INT = 2; -- Инкремент AccountID
DECLARE @StartDate DATETIME;
DECLARE @EndDate DATETIME;
DECLARE @LastDate DATETIME = (SELECT TOP 1 TransactDate FROM TempTransactions ORDER BY TransactDate DESC);
WHILE @i <= 3
BEGIN
SET @StartDate = '20120101'
SET @EndDate = '20120107'
WHILE @EndDate <= @LastDate
BEGIN
SELECT S.AccountID, SUM(Baks) As Summa
FROM (
SELECT O.TransactDate, O.AccountID, (O.Amount/CONVERT(MONEY, REPLACE(Col2, ',', '.'))) AS Baks
FROM (
SELECT T.AccountID, T.Amount, T.TransactDate, R.Col2
FROM TransactsAndRates.dbo.TempTransactions T
INNER JOIN TransactsAndRates.dbo.Rates R ON T.TransactDate = R.Col1) AS O
WHERE O.AccountID = @i) AS S
WHERE S.TransactDate BETWEEN @StartDate AND @EndDate
GROUP BY S.AccountId
SET @StartDate = DATEADD(DAY, 7, @StartDate)
SET @EndDate = DATEADD(DAY, 7, @EndDate)
END
SET @i += 1
END
如何将这些结果垂直“粘合”到一张表中?也许我没有走正确的路。
由于指定的脚本,我得到了很多表格的表格
AccountID |Summa |
---------------------
2 |237.1244 |
最初,数据取自表格
TransactDate |Amount |AccountID |
-------------|-----------|----------|
01-01-2012 |11506.0000 |2 |
01-01-2012 |8899.0000 |2 |
02-01-2012 |39.0000 |2 |
03-01-2012 |238.0000 |2 |
04-01-2012 |10023.0000 |2 |
04-01-2012 |565.0000 |2 |
06-01-2012 |357.0000 |2 |
09-01-2012 |10761.0000 |2 |
09-01-2012 |446.0000 |2 |
09-01-2012 |813.0000 |2 |
09-01-2012 |531.0000 |2 |
11-01-2012 |3597.0000 |2 |
12-01-2012 |2068.0000 |2 |
13-01-2012 |10706.0000 |2 |
13-01-2012 |187.0000 |2 |
13-01-2012 |11227.0000 |2 |
14-01-2012 |3019.0000 |2 |
14-01-2012 |969.0000 |2 |
18-01-2012 |1989.0000 |2 |
19-01-2012 |204.0000 |2 |
19-01-2012 |7879.0000 |2 |
20-01-2012 |483.0000 |2 |
期望的结果
StartDate | EndDate | AccountID |Summa |
-------------------------------------------
01.07.2012|07.01.2012| 2 |237.1244 |
08.07.2012|15.01.2012| 2 |557.244 |
16.07.2012|23.01.2012| 2 |426.44 |
16.07.2012|23.01.2012| 3 |100.789 |
差不多,但当然更多。
UPDATE使用MS SQL向表中插入多个值时,是否可以指定区间中的步骤?例如,我想更新表中的值,它将ID在 100 到 500 的范围内,步长为 30。或者,作为替代方案,如果没有区间,我该怎么办,所以更新以特定步骤在一定间隔内循环发生?下面我将指出一个代码示例,如果可能的话,我想在其中实现它。
UPDATE Rates
SET
Amount =
(
SELECT Amount
FROM
(
SELECT KK.Amount,
KK.OperationName
FROM
(
SELECT R.Col1,
R.RateID,
JJ.Type,
FLOOR(JJ.AmountMin + RAND() * (JJ.AmountMax + 1 - JJ.AmountMin)) AS Amount,
JJ.OperationName,
JJ.Currency
FROM Rates R
LEFT JOIN
(
SELECT *
FROM OriginTransacts OT
WHERE OT.Period = 'Month'
AND OT.OperationName = 'Clothes Shopping'
) AS JJ ON R.RateID = FLOOR(RAND() * 5 + 10)
) AS KK
) AS LL
WHERE Amount IS NOT NULL
),
OperationName =
(
SELECT OperationName
FROM
(
SELECT KK.Amount,
KK.OperationName
FROM
(
SELECT R.Col1,
R.RateID,
JJ.Type,
FLOOR(JJ.AmountMin + RAND() * (JJ.AmountMax + 1 - JJ.AmountMin)) AS Amount,
JJ.OperationName,
JJ.Currency
FROM Rates R
LEFT JOIN
(
SELECT *
FROM OriginTransacts OT
WHERE OT.Period = 'Month'
AND OT.OperationName = 'Clothes Shopping'
) AS JJ ON R.RateID = FLOOR(RAND() * 5 + 10)
) AS KK
) AS LL
WHERE Amount IS NOT NULL
)
WHERE Rates.RateID IN(FLOOR(RAND() * 5 + 1110), FLOOR(RAND() * 5 + 1140), FLOOR(RAND() * 5 + 1170), FLOOR(RAND() * 5 + 1200), FLOOR(RAND() * 5 + 1230), FLOOR(RAND() * 5 + 1260), FLOOR(RAND() * 5 + 1290), FLOOR(RAND() * 5 + 1320), FLOOR(RAND() * 5 + 1350), FLOOR(RAND() * 5 + 1380), FLOOR(RAND() * 5 + 1410), FLOOR(RAND() * 5 + 1440))
AND Rates.Amount IS NULL;
有一张5年的汇率表。左列由日期组成。导入是从格式文件完成的csv,这些日期在NVARCHAR. 您需要将它们转换为格式DATETIME(或DATE)。我只能将日期从该月的 1 日转换为 12 日,其余的仍然存在。问题可能出在数据表示格式mm.dd.yyyy或dd.mm.yyyy. 但是我在管理器中更改了这些格式 - 结果是一样的。我用Dbeaver,SQL-server-linux上Docker。我还能在哪里更改系统中的演示格式,使其与表格中的格式匹配。在日期表中为dd.mm.yyyy. 我正在使用以下脚本转换NVARCHAR为DATETIME
UPDATE Rates SET Col1 = CASE WHEN ISDATE(Col1) = 1
THEN
CONVERT(nvarchar(255),
CAST(Col1 AS datetime), 104)
END WHERE ISDATE(Col1) = 1;
里面有一个列表需要按照对应值的降序排列input。最大值所在的行input应位于列表的最顶部,最小值位于列表的最底部(应按降序排列)。所有这一切都应该在单击按钮时发生。我还没有把它绑定到按钮上,本质在功能上。
var list = document.querySelectorAll("li");
var inputs = document.querySelectorAll("input");
function rev() {
var max = 0;
var stab = 0;
for(var i = 0; i < 4; i++){
if(max < parseInt(inputs[i].value)) {
list[stab].before(list[i]);
max = parseInt(inputs[i].value);
stab = i;
}
}
console.log(max);
console.log(stab);
}
rev();
<h1>Just Test</h1>
<ol>
<li id="t1">One <input type="number" value="1"></li>
<li id="t2">Two <input type="number" value="2"></li>
<li id="t3">Three <input type="number" value="3"></li>
<li id="t4">For <input type="number" value="4"></li>
</ol>
<button>Sort</button>
在此执行中,一切正常,但如果您将第input3 行中的值更改为 5,例如,则代码已经无法正常运行。