如何检测字符串中的不支持字符?及对应JS逻辑的C#实现
实现等价的C#字符检测功能
没问题,我帮你把这段JavaScript的字符检测逻辑转换成完全等价的C#代码,确保功能和原代码100%一致:
public static bool VerifyTextUnicodeCharacters(string text) { List<int> notSupportArray = new List<int>(); // 和JS代码保持一致,从字符串末尾往前遍历 for (int i = text.Length - 1; i >= 0; i--) { int charCode = (int)text[i]; // 完全复用原JS的允许字符判断条件 bool isAllowed = (charCode == 33) || (charCode == 35) || (charCode == 38) || (charCode >= 40 && charCode <= 42) || (charCode == 46) || (charCode >= 48 && charCode <= 57) || (charCode >= 65 && charCode <= 91) || (charCode == 93) || (charCode == 95) || (charCode >= 97 && charCode <= 123) || (charCode == 125); if (!isAllowed) { notSupportArray.Add(charCode); } } return notSupportArray.Count == 0; }
细节说明(和原JS代码完全对齐):
- 遍历顺序:和你的JS代码一样从字符串最后一位开始往前遍历,虽然这个顺序不影响最终结果,但为了完全复刻逻辑保持一致
- 字符编码获取:C#里
(int)text[i]拿到的是字符的Unicode码值,和JS的charCodeAt行为一致(因为这里判断的都是ASCII范围内的字符,没有差异) - 允许字符规则:完全照搬原JS里的条件,确保所有允许/禁止的字符和原代码完全相同
- 返回逻辑:当没有不支持的字符时返回
true,否则返回false,和原JS的返回值逻辑一致
你可以像调用JS函数一样使用这个C#方法,比如:
bool result = VerifyTextUnicodeCharacters("My_string");
内容的提问来源于stack exchange,提问作者Jerry61
相关产品推荐
相关产品推荐

