我有剃刀文件,我用字符串的文本框定义html表单:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Product</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
Run Code Online (Sandbox Code Playgroud)
问题是,我希望这个字段(model.name)不可为空,但剃刀验证允许字符串为空,当我将空字符串添加到模型时它会给出错误.任何建议如何验证这个字符串不再是空的?
我有这样一行代码:
list |> List.mapi (fun i x -> y, i)
Run Code Online (Sandbox Code Playgroud)
(假设 y 是已经定义的类型)
但我想返回具有某些条件的元素(例如过滤它)
我不能这样写:
list |> List.mapi (fun i x -> if 'condition' then y, i)
Run Code Online (Sandbox Code Playgroud)
因为它也需要其他条件,而我没有“其他”情况。我也没有设法同时使用过滤器,因为我还需要返回正确的索引,如果我过滤列表,索引将被更改。有任何想法吗?
编辑 到现在为止,我是这样实现的:
list |> List.mapi (fun i a -> if (a = None) then O, i else X, i) |> List.filter (fun (a,i) -> a = O)
Run Code Online (Sandbox Code Playgroud)
对于其他情况,我给出了无用的 X,我只是为了能够在此之后写入条件并删除 X 条件。它起作用了,这就是我想要的结果。但我相信有更好的解决方案。
有没有办法在参数匹配中包含String contains/regex?例如,字符串是"发生了一些错误".但我希望它匹配子串"发生错误".我试过这个,但它不起作用:
defp status({:error, ~r/error happened/}, state) do
end
Run Code Online (Sandbox Code Playgroud) 假设我有一个可能包含一个或多个IP地址的字符串.如何在ruby中使用正则表达式匹配所有这些并且只有有效的?
目前,我的解决方案如下所示:
IP_ADDR_REGEX = %r{
\b
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
\b
}x
Run Code Online (Sandbox Code Playgroud)
当IP用空格分隔时,这很有效,例如它192.168.1.1从文本中提取bla bla 192.168.1.1 bla.然而,192.168.1.1在这种情况下它仍然提取:bla bla 192.168.1.1.1.1 bla.
如何使它不匹配这种情况?即当它是192.168.1.1.1.1我的正则表达式不应该返回匹配.我找了很多关于这个问题的解决方案但找不到我想要的东西.我也试图通过最后只匹配空格来找出解决方案(因为\b匹配一个.字符)但我无法使它工作.谢谢
我是Elixir编程语言的初学者。
我有一个类似这样的对象:
{
id: uuid,
created_at: DateTime.t,
updated_at: DateTime.t,
type: my_type
}
Run Code Online (Sandbox Code Playgroud)
假设my_type是其中之一~w[A B C D]
我想编写一个函数,其中包含这些对象的列表并返回以下映射:
%{
A: 120,
B: 220,
C: 560,
D: 0,
any: 560
}
Run Code Online (Sandbox Code Playgroud)
此外,这里的值还必须是每+ updated_at与created_atcolumn(Timex.diff(updated_at, created_at, :seconds))之间的最大差。在的情况下,在不考虑并采取列表中的所有对象之间的最大值。my_typeanyanymy_type
在Elixir中做这件事的最好方法是什么?谢谢。
试图从一个字段中删除一个不间断的空间,但没有任何成功。我试过了
execute <<-SQL
UPDATE customers
SET name = TRIM (name)
SQL
Run Code Online (Sandbox Code Playgroud)
但这只会删除空格。这是与this类似的问题,但我需要它用于Postgres(Postgres抱怨syntax error at or near "x00A0")并且我只需要修剪即它必须仅在文本的开头和结尾删除。
谢谢