string local= HttpUtility.HtmlDecode(GetLocalizedSupportPhone()).Replace("-", "").Replace(" ", "");
我收到一个字符串:
"0­12­4 41­481­73"
来自GetLocalizedSupportPhone()
方法。 Html Decode方法返回:
"0-12-4 41-481-73"
我有一个电话号码列表,如: - "01244148173"
,"01244148173"
等,它们是没有任何空格字符或html字符的普通整数。
问题场景: - 我想做的就是解码 本地 字符串(“0-12-4 41-481-73
”),将­
替换为以及" "
空string
字符,并将结果 本地 字符串与列表项进行比较。如果存在类似的列表项,则删除该特定列表项。
但奇怪的是,.Replace()
方法用空格字符替换空格字符,但无法用空"-"
替换string
。
我只是好奇为什么会这样?为什么任何串联方法(就像我尝试使用.split()
)无法检测到"-"
?
答案 0 :(得分:3)
有不同类型的连字符。 <html>
<body>
<div align="center">
<table id="allData">
<tbody>
<tr>
<th>Number</th>
<th>Name</th>
<th>Value</th>
</tr>
<tr>
<th>1.</th>
<td>Name 1</td>
<td>Value 1</td>
</tr>
<tr>
<th>2.</th>
<td>Name 2</td>
<td>Value 2</td>
</tr>
<tr>
<th>100.</th>
<td>Name 100</td>
<td>Value 100</td>
</tr>
<tr>
<th>1.</th>
<td>Name 1</td>
<td>Value 1</td>
</tr>
<tr>
<th>2.</th>
<td>Name 2</td>
<td>Value 2</td>
</tr>
<tr>
<th>100.</th>
<td>Name 100</td>
<td>Value 100</td>
</tr>
<tr>
<th>1.</th>
<td>Name 1</td>
<td>Value 1</td>
</tr>
<tr>
<th>2.</th>
<td>Name 2</td>
<td>Value 2</td>
</tr>
<tr>
<th>100.</th>
<td>Name 100</td>
<td>Value 100</td>
</tr>
<tr>
<th>1.</th>
<td>Name 1</td>
<td>Value 1</td>
</tr>
<tr>
<th>2.</th>
<td>Name 2</td>
<td>Value 2</td>
</tr>
<tr>
<th>100.</th>
<td>Name 100</td>
<td>Value 100</td>
</tr>
<tr>
<th>1.</th>
<td>Name 1</td>
<td>Value 1</td>
</tr>
<tr>
<th>2.</th>
<td>Name 2</td>
<td>Value 2</td>
</tr>
<tr>
<th>100.</th>
<td>Name 100</td>
<td>Value 100</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
是一个柔和的连字符。特别是软连字符是173,键盘上的连字符是45。
试试这个。
­
那将用空格替换软连字符然后你的第二个替换将摆脱它。
另一种选择是使用正则表达式删除所有非数字值。
var r = HttpUtility.HtmlDecode("0­12­4 41­481­73")
.Replace((char)173, ' ')
.Replace(" ", "");
答案 1 :(得分:0)
如果您只是想从字符串中删除空格和软超标而不必处理HTML解码,这可能会有所帮助:
function checkDefaultFloor(nextState, replace, callback){
if (settings.floorUrl){
console.log( settings.floorUrl);
replace(`/maps/${settings.floorUrl}`)
}
callback();
}
我尝试使用Trim((char)173),但它(和Split这样的方法)似乎无法像Regex类那样处理软连字符。