如何循环遍历字符串名称并更改 VB 中的非法字符
How to cycle through a string name and change illegal characters in VB
我正在尝试接收某人输入的批处理名称,然后 运行 通过循环将其替换为“_”和非法字符(!£$%...等)。
这是我拥有的:
'define illegal chars
illegalChars = "!,£,$,%,^,&,*"
'split illegal chars into an array
illegalCharsArr = Split(illegalChars, ",")
'take entered data from textbox
batch_name = batchEntryBox.Text
'split entered data into an array
batchNameArr = Split(batch_name, " ")
For Each item In batchNameArr
For Each i In illegalCharsArr
If batchNameArr(item) = illegalCharsArr(i) Then
batchNameEdit = batchNameArr.Replace(batchNameArr(item), illegalCharsArr(i))
End If
Next
Next
'post new batch name in Label box
Label1.Caption = batchNameEdit
End Sub
我无法让它工作。另外,如何拆分没有空格的名称?
谢谢!
试试这个逻辑。
Sub CleanTheWord()
illegalChars = "!,£,$,%,^,&,*"
Dim illegalCharsArr() As String
illegalCharsArr = Split(illegalChars, ",")
Dim batch_name As String
batch_name = "£sadg$u^su&bc!ksj*" 'Changed this for testing. Modify accordingly
Dim newstring As String
newstring = batch_name
Dim pos As String
For j = 1 to Len(batch_name)
pos = Mid(batch_name, j, 1)
For Each i In illegalCharsArr
If StrComp(pos, i, vbTextCompare) = 0 Then
newstring = VBA.Replace(newstring, pos, "_", 1, 1, vbTextCompare)
End If
Next
Next
MsgBox newstring, vbInformation
End Sub
久经考验:
我正在尝试接收某人输入的批处理名称,然后 运行 通过循环将其替换为“_”和非法字符(!£$%...等)。 这是我拥有的:
'define illegal chars
illegalChars = "!,£,$,%,^,&,*"
'split illegal chars into an array
illegalCharsArr = Split(illegalChars, ",")
'take entered data from textbox
batch_name = batchEntryBox.Text
'split entered data into an array
batchNameArr = Split(batch_name, " ")
For Each item In batchNameArr
For Each i In illegalCharsArr
If batchNameArr(item) = illegalCharsArr(i) Then
batchNameEdit = batchNameArr.Replace(batchNameArr(item), illegalCharsArr(i))
End If
Next
Next
'post new batch name in Label box
Label1.Caption = batchNameEdit
End Sub
我无法让它工作。另外,如何拆分没有空格的名称?
谢谢!
试试这个逻辑。
Sub CleanTheWord()
illegalChars = "!,£,$,%,^,&,*"
Dim illegalCharsArr() As String
illegalCharsArr = Split(illegalChars, ",")
Dim batch_name As String
batch_name = "£sadg$u^su&bc!ksj*" 'Changed this for testing. Modify accordingly
Dim newstring As String
newstring = batch_name
Dim pos As String
For j = 1 to Len(batch_name)
pos = Mid(batch_name, j, 1)
For Each i In illegalCharsArr
If StrComp(pos, i, vbTextCompare) = 0 Then
newstring = VBA.Replace(newstring, pos, "_", 1, 1, vbTextCompare)
End If
Next
Next
MsgBox newstring, vbInformation
End Sub
久经考验: