Javascript 将数字(前面不带字符)替换为(下划线)
我想用_number替换字符串中的数字。我们必须只提取不以字符开头的数字,并用下划线替换它们。 要求:我有一个字符串,所以在处理时我想用_常量替换常量。 示例字符串:“(a/(b1/8))*100” 预期产出:“(a/(b1/8))*100” 请建议如何在asp.net代码中执行此操作Javascript 将数字(前面不带字符)替换为(下划线),javascript,asp.net,Javascript,Asp.net,我想用_number替换字符串中的数字。我们必须只提取不以字符开头的数字,并用下划线替换它们。 要求:我有一个字符串,所以在处理时我想用_常量替换常量。 示例字符串:“(a/(b1/8))*100” 预期产出:“(a/(b1/8))*100” 请建议如何在asp.net代码中执行此操作 提前感谢。您需要一个正则表达式和替换函数: var str = '(a/(b1/8))*100'; alert( str.replace(/([^a-zA-Z0-9])([0-9])/g, '$1_$2') );
提前感谢。您需要一个正则表达式和替换函数:
var str = '(a/(b1/8))*100';
alert( str.replace(/([^a-zA-Z0-9])([0-9])/g, '$1_$2') );
那么,发生了什么事
标记正则表达式(最适合此任务的工具)的开始和结束/
表示“没有字母或数字”[^a-zA-Z0-9]
表示“数字”李>[0-9]
- 它们合在一起的意思是,“不是字母或数字后跟数字的东西”李>
- 结尾的g表示“找到所有的”
将正则表达式分为$1和$2两部分()
是输出格式“$1\u$2”
您需要一个正则表达式和replace函数:
var str = '(a/(b1/8))*100';
alert( str.replace(/([^a-zA-Z0-9])([0-9])/g, '$1_$2') );
那么,发生了什么事
标记正则表达式(最适合此任务的工具)的开始和结束/
表示“没有字母或数字”[^a-zA-Z0-9]
表示“数字”李>[0-9]
- 它们合在一起的意思是,“不是字母或数字后跟数字的东西”李>
- 结尾的g表示“找到所有的”
将正则表达式分为$1和$2两部分()
是输出格式“$1\u$2”
与cWallenpole的相同,只是在C#代码隐藏中 已更新:
string str = "(a/(b1/8))*100";
str = Regex.Replace(str, "([^a-zA-Z0-9]|^)([0-9])", "$1_$2");
与cWallenpole的相同,只是在C#代码隐藏中 已更新:
string str = "(a/(b1/8))*100";
str = Regex.Replace(str, "([^a-zA-Z0-9]|^)([0-9])", "$1_$2");
为什么不试试正则表达式: 即: 搜索正则表达式:“[0-9]+”&替换为“u+正则表达式” 即 资料来源:
希望这对你有所帮助 为什么不试试正则表达式: 即: 搜索正则表达式:“[0-9]+”&替换为“u+正则表达式” 即 资料来源:
希望这对你有所帮助 所以代码将在C#或VB.net中,所以它可以用作JavaScript标识符,对吗?这两个中的哪一个?那么代码将在C#或VB.net中,因此它可以用作JavaScript标识符,对吗?这两个选项中的哪一个?你忘记了限制“仅限不以字符开头的数字”(他可能指的是“单词字符”或非标点符号之类)。你忘记了限制“仅限不以字符开头的数字”(他可能指的是“单词字符”),或非标点符号,诸如此类)。如果他的字符串以数字开头,这将崩溃。您仍然可以使用负回溯,或者,如果字符类适合的话,可以使用单词边界。或者,在第一部分中使用另一个选项,即
^
,这是一个点,但JS不支持负回溯。当然,也有。如果字符串以数字开头,这将崩溃。您仍然可以使用负回溯,或者,如果字符类适合,可以使用单词边界。或者,对于第一部分,使用一个替代选项,使用^
,这是一个点,但JS不支持负回溯。当然,有。这会提供部分输出。这会提供部分输出:(a/(b1/(u 8))*(a/b1/(u 8))10\u 0预期为(a/b1/(u 8))*_100@cwallenpoole您能告诉我为什么3位数的数字,即100被一分为二吗。这不是你想要的。还有其他编辑吗?@cwallenpole非常感谢。这就像一个符咒:)…非常感谢。这是部分输出。这是部分输出:(a/(b1/_8))*_10_0预期是(a/b1/_8))*_100@cwallenpoole您能告诉我为什么3位数的数字,即100被一分为二吗。这不是我想要的。还有其他编辑吗?@cWallenpole非常感谢。这就像一个符咒:)…非常感谢。
String RegExPattern = @"[0-9]+";
String str = "(a/(b1/8))*100";
Regex.Replace(str, RegExPattern, "_$1");