我想查看字符串是以特殊字符开头还是以特殊字符结尾
testString("#Testing") Returns: true
testString("Testing\") Returns: true
testString("#Testing)") Returns: true
testString("Tes#ting~") Returns: true
testString("Tes#ting") Returns: false
testString("Testing") Returns: false
想法是使用正则表达式
Dim rg As Variant
Set rg = CreateObject("VBScript.RegExp")
rg.Pattern = ""
returnFunc = rg.test(paramString)
但是,我不知道如何创建正则表达式来检查符号。
欢迎所有替代解决方案
因此,如果它以[a-Z] [0-9]
以外的任何其他内容开始或结束答案 0 :(得分:2)
Function test(x)
Dim rg As Variant
Set rg = CreateObject("VBScript.RegExp")
rg.Pattern = "^([^A-Za-z0-9].*|.*[^A-Za-z0-9])$"
test = rg.test(x)
End Function
Sub hoi()
Debug.Print test("#Testing")
Debug.Print test("Testing\")
Debug.Print test("#Testing)")
Debug.Print test("Tes#ting~")
Debug.Print test("Tes#ting")
Debug.Print test("Testing")
End Sub
答案 1 :(得分:1)
使用VB Like
operator检查字符串是否以字母数字字符开头和结尾:
If Not "#Testing" Like "[0-9A-Za-z]*[0-9A-Za-z]" Then MsgBox True
如果字符串可能少于2个字符:
If string Like "[!0-9A-Za-z]*" Or string Like "*[!0-9A-Za-z]" Then MsgBox True
答案 2 :(得分:0)
如果您不需要为不同的语言或其他原因更改特殊字符的定义,那么您只需检查有效字符列表中的第一个和最后一个字符是否有效。
var current;
var currentIndex = 0;
const getSessions = () => {
loginService.getUser().then((response) => {
var user_id = response.data.id;
console.log("getUser returning this => ", response.data);
loginService.getUserSessions(user_id).then((response) => {
$scope.sessions = response.data;
current = $scope.sessions[0]
})
})
};
getSessions();
$scope.nextPage = function() {
if ( currentIndex < ($scope.sessions.length - 1) ) {
currentIndex++;
current = $scope.sessions[currentIndex]
}
}
$scope.prevPage = function (){
if ( currentIndex > 0 ) {
currentIndex--;
current = $scope.sessions[currentIndex]
}
}