这是我目前拥有的,这将匹配字母数字字符和空格:
^[a-z0-9\s]+$
Run Code Online (Sandbox Code Playgroud)
我想做的是确保只有一(1)个空格才能匹配.以上将匹配"这是一个测试",但如果输入是"This isatest"或"T hisisatest",我只希望它匹配.一旦总空间不止一个,它将不再匹配.
理想情况下,如果空间是领先或尾随,它也不匹配,但那只是结冰.
编辑: 这个想法是,这将用于在帐户创建时验证帐户名称.帐户名称只能包含拉丁字母,数字和单个空格.但是,它可以是所有字母或所有数字,不需要空格.这绝对是关于空间而不是空白.
我正在使用SqlDataAdapter和DataSet从MSSQL服务器检索数据.从那个DataSet我创建了一个DataTable.我的目标是将表的每一列转换为字符串,其中元素以逗号分隔.我想我会在分隔符工作之前先尝试字符串转换.
代码在ASP.Net页面的代码隐藏中运行.最终的目标是将字符串传递给jscript变量,这是一个"功能需求",我从列创建一个分隔的字符串,并且它必须最终作为jscript变量.
这是我到目前为止所拥有的:
DataSet myDataSet = new DataSet();
mySqlDataAdapter.Fill(myDataSet);
DataTable temperature = myDataSet.Tables["Table"];
// LOOP1
foreach (DataRow row in temperature.Rows)
// this loop works fine and outputs all elements
// of the table to the web page, this is just to
// test things out
{
foreach (DataColumn col in temperature.Columns)
{
Response.Write(row[col] + " ### ");
}
Response.Write("<br>");
}
// LOOP2
foreach (DataColumn column in temperature.Columns)
// this loop was meant to take all elements for each
// column …Run Code Online (Sandbox Code Playgroud) 根据String.Join的MSDN文档 "如果value中的任何元素为null,则使用空字符串."
代码我从DataTable中提取数据
rotationValues = string.Join<object>(", ",
from r in rotationData.Rows.OfType<DataRow>() select r[5]);
Run Code Online (Sandbox Code Playgroud)
这将导致输出类似于:
8, 7, , 12, , , 13,
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以简单地将"null"替换为空字符串,如下所示:
8, 7, null, 12, null, null, 13, null
Run Code Online (Sandbox Code Playgroud) 我正在运行一个asp.net代码隐藏,它创建一个字符串变量,该变量包含由逗号分隔的浮点集合.在C#中有类似的东西
string myCString = "4.5, 3.1, 6.5, 7.0, -1.3";
Run Code Online (Sandbox Code Playgroud)
然后,此变量进入asp.net网页,并将其分配给JavaScript变量:
var myJString = '<%=myCString %>';
Run Code Online (Sandbox Code Playgroud)
现在我们进入Highcharts,其中普通系列的语法如下所示:
series: [{
name: 'Series1',
data: [1.1, 3.8, 5.3, 9.8, 5.0]
}]
Run Code Online (Sandbox Code Playgroud)
我想要做的是将myJString分配给系列的数据字段.我尝试了两种方法,但都没有用.解决方案可能是微不足道的,但我甚至不是一个热心的程序员.看起来问题的核心是Highcharts期望一组数字而不是字符串.但是,我对JavaScript中方括号的理解是它们将内部的任何内容转换为字符串?
这里是没有不工作:
series: [{
name: 'Series1',
data: myJString // does not work
}]
series: [{
name: 'Series1',
data: myJString - 0 // does not work either
}]
Run Code Online (Sandbox Code Playgroud)
第二次尝试来自highcharts - 可变数据导致浏览器锁定回想起它有意义它不起作用,因为从字符串减去0不仅仅是一个数字达不到目标.
第一次尝试不起作用也是有道理的,因为它似乎想要一个数字数组而不是字符串.现在我的实际问题:
我可以在JavaScript中廉价地转换我的逗号分隔浮点数字符串,以便我可以在数据字段中使用它,如果是这样,我该怎么做?在代码隐藏中执行此操作并将数组传递给JavaScript然后使用数组尝试整个事情会更好(性能明智)吗?这假设myJString不是浮点数组是实际问题.
提前感谢您提供的任何见解.
下面的SELECT语句来自我用来检索数据的存储过程,该数据随后被发送到JSON:
SELECT *
FROM (
SELECT CAST(DateTimeUTC as SmallDateTime) as [DateTime], DataValue, VariableID
FROM DataValues
WHERE SiteID = @siteID and VariableID BETWEEN 9 and 10 and DateTimeUTC >= DATEADD (day, @pastDays, getdate())
) TableDate
PIVOT (SUM(DataValue) FOR VariableID IN ([9],[10])) PivotTable ORDER BY [DateTime]
Run Code Online (Sandbox Code Playgroud)
我想要完成的是修改过程以接受要转移的列范围.在上面的例子中,我只检索两个变量的值.如果我想要检索VariableID 1到10或1到50,该怎么办?必须有一种方法以除以下方式之外的方式检索1到10:
VariableID IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10])
Run Code Online (Sandbox Code Playgroud)
在使用PIVOT和UNPIVOT MSDN上没有提到的方式来指定一个范围.
我意识到可以在存储过程中使用动态SQL,但鉴于我自己对SQL的了解以及那些必须长期维护的人的知识,我对通过使用动态SQL引入额外的复杂性犹豫不决.这里有一个概念上类似的问题,请参阅TSQL Pivot长列列表,并使用动态SQL解决方案进行了回答.
这是.Net C#String的后续问题.如果元素值为null,如何输出"null"而不是空字符串?答案建议使用??运算符来定义自定义空值,但替换永远不会被触发.
DataSet myDataSet = new DataSet();
mySqlDataAdapter.Fill(myDataSet);
DataTable rotationData = myDataSet.Tables["Table"];
rotationValues = string.Join(", ",
from r in rotationData.Rows.OfType<DataRow>()
select r[5] ?? "null");
Run Code Online (Sandbox Code Playgroud)
当我将代码更改为:
rotationValues = string.Join(", ",
from r in rotationData.Rows.OfType<DataRow>()
select r[5].GetType());
Run Code Online (Sandbox Code Playgroud)
我可以观察到其中包含有效数据System.Double的元素的数据类型是NULL,而元素的数据类型是NULL System.DBNull.难道??不是操作上System.DBNull?
c# ×3
.net ×2
datatable ×2
null ×2
string ×2
arrays ×1
asp.net ×1
datacolumn ×1
dataset ×1
highcharts ×1
javascript ×1
linq ×1
pivot ×1
regex ×1
sql-server ×1
t-sql ×1