Javascript 正则表达式只允许字符串中字符之间的#
如何编写JavaScript正则表达式来处理 案例1。允许所有字符,但仅在字符之间使用“#” 案例2。只允许字母数字和“#”,但在字符之间允许“#”Javascript 正则表达式只允许字符串中字符之间的#,javascript,regex,Javascript,Regex,如何编写JavaScript正则表达式来处理 案例1。允许所有字符,但仅在字符之间使用“#” 案例2。只允许字母数字和“#”,但在字符之间允许“#” For example : case1 : var formattedText = inputText.replace(/^(.+#+.)$/g, ''); //not working 要匹配除开头和结尾处的#之外的所有字符,可以使用一个否定字符类[^#\r\n]排除(或换行符,如果需要) 要仅匹配字母数字,而不匹配字符串的开头或结尾,可以使用
For example :
case1 : var formattedText = inputText.replace(/^(.+#+.)$/g, ''); //not working
要匹配除开头和结尾处的#之外的所有字符,可以使用一个否定字符类[^#\r\n]
排除
(或换行符,如果需要)
要仅匹配字母数字,而不匹配字符串的开头或结尾,可以使用:
^[a-zA-Z0-9]+(?:#+[a-zA-Z0-9]+)*$
const regex=/^[a-zA-Z0-9]+(?:#+[a-zA-Z0-9]+)*$;
[
“#测试”,
“测试#”,
“测试”,
“测试#测试”,
“测试#测试#测试”
].forEach(s=>console.log(`${s}-->${regex.test}`)
若要在开始和结束处匹配除#之外的所有字符,您可以使用一个否定字符类[^#\r\n]
排除
(或换行符,如果需要)
要仅匹配字母数字,而不匹配字符串的开头或结尾,可以使用:
^[a-zA-Z0-9]+(?:#+[a-zA-Z0-9]+)*$
const regex=/^[a-zA-Z0-9]+(?:#+[a-zA-Z0-9]+)*$;
[
“#测试”,
“测试#”,
“测试”,
“测试#测试”,
“测试#测试#测试”
].forEach(s=>console.log(`${s}-->${regex.test}`)
inputText.replace(/^++++$/g.)
?inputText.replace(/^++++$/g.)
?你好,第四只鸟,谢谢你的回答。一个查询,如果我不想验证字符串末尾的“#”怎么办?@Soojoo Dp你的意思是应该允许在末尾使用“#”吗?@Soojoo那么你可以使用^[a-zA-Z0-9]+[#a-zA-Z0-9]+$
好的,明白了,那么案例1呢?@Soojoo对于案例1,你可以使用^[^\r\n]+.*$
如果对于案例2,您还希望允许使用单个字符^[a-zA-Z0-9]+[#a-zA-Z0-9]*$
您好@第四只鸟,谢谢您的回答。一个查询,如果我不想验证字符串末尾的“#”怎么办?@Soojoo Dp你的意思是应该允许在末尾使用“#”吗?@Soojoo那么你可以使用^[a-zA-Z0-9]+[#a-zA-Z0-9]+$
好的,明白了,那么案例1呢?@Soojoo对于案例1,你可以使用^[^\r\n]+.*$
如果对于案例2,您还希望允许单个字符^[a-zA-Z0-9]+[#a-zA-Z0-9]*$